我有下一个代码:
public class BootCompleteReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent startActivityIntent = new Intent("android.intent.action.MAIN");
startActivityIntent.setClass(context, MainActivity.class);
startActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivityIntent.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED + WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD + WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON + WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
context.startActivity(startActivityIntent);
}}
清单:
<receiver android:name=".BootCompleteReceiver" android:enabled="true" android:exported="false" android:label="BootCompleteReceiver">
<intent-filter >
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.HOME"/>
</intent-filter>
</receiver>
当我打开活动开始的设备时,它工作得很好,但我认为它需要大约30秒,我认为是太多时间,我想做类似Famigo的应用程序,当设备是马上开始。
答案 0 :(得分:0)
您无法加速此过程。您的设备需要30秒,因为程序必须等到您的设备完全启动。 Boot_Completed是系统在引导后发出的第一个通知。
Google故意这样做是为了防止应用在系统完成启动之前启动。
答案 1 :(得分:0)
收到呼叫BootComplete Receiver后,接收器将在启动后启动完成。 大约需要30秒。 你无法在操作系统之前启动应用程序!