首先是從BroadcastReceiver派生出一個新類,用來監聽系統啟動後發出的廣播消息android.intent.action.BOOT_COMPLETED 。
- BootReceiver.java:
- import android.content.BroadcastReceiver;
- import android.content.Context;
- import android.content.Intent;
- import android.util.Log;
- publicclass BootReceiver extends BroadcastReceiver {
- publicvoid onReceive(Context context, Intent intent) {
- if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED"))
- {
- Log.d("BootReceiver", "system boot completed");
- Intent newIntent = new Intent(context, FirstRun.class);
- newIntent.setAction("android.intent.action.MAIN"); //MyActivity action defined in AndroidManifest.xml
- newIntent.addCategory("android.intent.category.LAUNCHER");//MyActivity category defined in AndroidManifest.xml
- newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //If activity is not launched in Activity environment, this flag is mandatory to set
- context.startActivity(newIntent);
- //if you want to start a service, follow below method:
- /*******************************************************
- Intent service = new Intent(yourService.ACTION_START);
- service.setClass(context, yourService.class);
- context.startService(service);
- ******************************************************/
- }
- }
- }
接下来这个类就是监听到系统启动完毕后,我们要运行的activity.
- FirstRun.java
- import android.app.Activity;
- import android.os.Bundle;
- publicclass FirstRun extends Activity {
- publicvoid onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- }
- }
当然,我们还要改配置文件,需要注意的是,在manifest.xml中需要加上
- <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
- Manifest.xml
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.service.prac"
- android:versionCode="1"
- android:versionName="1.0">
- <application android:icon="@drawable/icon" android:label="@string/app_name">
- <receiver android:name=".BootReceiver"
- android:label="@string/app_name">
- <intent-filter>
- <action android:name="android.intent.action.BOOT_COMPLETED"/>
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </receiver>
- <activity android:name=".FirstRun">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- </application>
- <uses-sdk android:minSdkVersion="3" />
- <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
- </manifest>
文章出處 http://www.ziyouku.com/archives/android-start-at-boot-activity-service.html
全站熱搜
留言列表