Android程序开机自启动

android系统在Manifest.permission中有这样一条RECEIVE_BOOT_COMPLETED的定义,当你自己的程序加入这个权限后,就可以在系统启动完毕后收到一条系统的广播,这个广播的标志为ACTION_BOOT_COMPLETED,因此我们只要定义一个BroadcastReceiver用来接收这个广播,然后加入自定义的动作即可。代码如下:

public class LocationLoggerServiceManager extends BroadcastReceiver {
	public static final String TAG = "customTag";
	@Override
	public void onReceive(Context context, Intent intent) {
		if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {
			ComponentName comp = new ComponentName(context.getPackageName(), MainActivity.class.getName());
			
			context.startActivity(new Intent().setComponent(comp).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
		} else {
			Log.e(TAG, "Received unexpected intent " + intent.toString());
		}
	}
}

在AndroidManifest.xml中加入这个类的定义和权限说明:

<receiver
			android:name=".LocationLoggerServiceManager"
			android:enabled="true"
			android:exported="false"
			android:label="LocationLoggerServiceManager">
			<intent-filter>
				<action
					android:name="android.intent.action.BOOT_COMPLETED" />
			</intent-filter>
		</receiver>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

OK,大功告成。这里演示的是启动一个activity,同理你也可以启动一个service.



本文固定链接: http://www.ntxz.net/?p=1777 | 周忞 | 吉心的记事本



该日志由 吉心 于2012年02月09日发表在 Android 分类下, 你可以发表评论
在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: Android程序开机自启动 | 周忞 | 吉心的记事本
关键字: , ,

Android程序开机自启动:等您坐沙发呢!

发表评论

您必须 [ 登录 ] 才能发表留言!