http://blog.csdn.net/mzz5240/article/details/6638482
做一个android开机就会自动启动的程序,该程序只要启动一次,以后开机就会自动启动,直到删除该程序。
android开机事件会发送一个叫做Android.intent.action.BOOT_COMPLETED的广播信息。只要我们接收这个action并在receiver中启动我们自己的程序就可以实现了。
具体实现如下。
先建一个简单的activity:
Hello.java
[java]
view plain
copy
print
?
- public class Hello extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- }
- }
public class Hello extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } }
然后设置一个receiver接收系统发出的广播消息
StartupReceiver.java
[java]
view plain
copy
print
?
- public class StartupReceiver extends BroadcastReceiver {
- @Override
- public void onReceive(Context context, Intent intent) {
- // TODO Auto-generated method stub
- Intent i = new Intent(context,Hello.class);
- i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- //将intent以startActivity传送给操作系统
- context.startActivity(i);
- }
- }
public class StartupReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub Intent i = new Intent(context,Hello.class); i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //将intent以startActivity传送给操作系统 context.startActivity(i); } }
然后在AndroidManifest.xml中添加
AndroidManifest.xml
[html]
view plain
copy
print
?
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="mzz.startup"
- android:versionCode="1"
- android:versionName="1.0">
- <application android:icon="@drawable/icon" android:label="@string/app_name">
- <activity android:name=".Hello"
- android:label="@string/app_name">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- <receiver android:name=".StartupReceiver">
- <intent-filter>
- <action android:name="android.intent.action.BOOT_COMPLETED" />
- <category android:name="android.intent.category.HOME" />
- </intent-filter>
- </receiver>
- </application>
- <uses-sdk android:minSdkVersion="8" />
- </manifest>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="mzz.startup" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".Hello" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name=".StartupReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <category android:name="android.intent.category.HOME" /> </intent-filter> </receiver> </application> <uses-sdk android:minSdkVersion="8" /> </manifest>
这样启动了一次该程序之后,以后开机就会自动启动该程序了。
刚做了一个发短信的小应用,需要判断发送的号码是不是电话号码:
public> > /*
* 可接受的电话格式有:
*/
String> /*
* 可接受的电话格式有:
*/
String> CharSequence> Pattern> Matcher>
Pattern> Matcher> if(matcher.matches() || matcher2.matches()) {
> }
return isValid;
}