Android启动完成后会广播一个action,“android.intent.action.BOOT_COMPLETED”,所以只要APK能够实现接收这个action就可以实现开启自动运行:
实现一个BroadcastReceiver:
public class BootBroadcastReceiver extends BroadcastReceiver {
static final String ACTION = "android.intent.action.BOOT_COMPLETED";
@Override
public void onReceive(Context arg0, Intent arg1) {
// TODO Auto-generated method stub
if (arg1.getAction().equals(ACTION)) {
Intent mMainAcitvityIntent = new Intent (arg0, MainActivity.class);
mMainAcitvityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
arg0.startActivity(mMainAcitvityIntent);
}
}
}
AndroidMainifest.xml中:
<receiver android:name="com.himi.edittext.BootBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
注意需要添加权限:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
我在想,Android 的各种action能不能自己定义?比如启动完成后,检查SD卡中有一个文件就广播action A, 启动一个APK;如果没有这个文件就广播action B,启动另一个APK
还要再看看。