之前有個奇葩的需求就是要求設備開機時自動啟動應用(自家產(chǎn)的設備)桑包,所以網(wǎng)上搜了下:
創(chuàng)建一個廣播接收器萌踱,然后在onRecieve方法中實現(xiàn)啟動應用:
public class BootBroadcastReceiver extends BroadcastReceiver{
@Override
public void onReceive(final Context context, Intent intent) {
Intent toIntent = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName());
context.startActivity(toIntent );
}
}
OK,功能是實現(xiàn)了狈定,但是有時候啟動會很慢诚卸,10+s之后才會啟動峭咒,有時候又干脆不啟動。一位朋友正好也做過相關的功能绅你,提議我在方法中先睡兩秒再去調(diào)起伺帘。
try {
Thread.sleep(2000L);
//Intent toIntent = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName());
// context.startActivity(toIntent );
intent = new Intent(context, LauncherActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
} catch (InterruptedException e) {
e.printStackTrace();
}
上面兩種方法都可以調(diào)起應用,只是在睡兩秒再啟動后忌锯,成功率會高不少伪嫁,而且相對也會比較快~。
最后偶垮,記得在xml文件中注冊這個廣播接收器哦:
<receiver android:name=".receiver.BootBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</receiver>