看了网上的几个例子,也做了一个系统启动后直接运行activity的小程序 代码贴在下面: 首先是从BroadcastReceiver派生出一个新类,用来监听系统启动后发出的广播消息android.intent.action.BOOT_COMPLETED。 BootReceiver.java: - import android.content.BroadcastReceiver;
- import android.content.Context;
- import android.content.Intent;
- import android.util.Log;
- public class BootReceiver extends BroadcastReceiver {
- public void 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;
- public class FirstRun extends Activity {
-
- public void 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 - <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>
复制代码
|