BOOT_COMPLETED的BroadcastReceiver太慢 [英] BroadcastReceiver for BOOT_COMPLETED is too slow
问题描述
以下是我的清单文件。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.mccheekati.test_trail">
<uses-permission
android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<receiver
android:name="com.example.mccheekati.test_trail.yourActivityRunOnStartup"
android:enabled="true"
android:exported="true"
android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.QUICKBOOT_POWERON"
/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
广播接收器如下:
public class yourActivityRunOnStartup extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
Intent i = new Intent(context, MainActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
}
}
没有错误。重新启动手机后,应用程序即会打开。但是重启后需要一分钟的时间来启动应用程序。
No errors. The application is opening on rebooting the phone. But it takes a minute's time to launch the application after reboot. Is there any what to start the application immediately after reboot?
推荐答案
是否有任何要启动的内容?
Is there any what to start the application immediately after reboot?
否。
有很多,许多想要在启动时获得控制的应用。轮到您的速度取决于很多变量,例如已安装的应用程序数量,设备的CPU速度,设备上的系统RAM数量等。
There are many, many apps that want to get control at boot time. How quickly yours will get its turn will depend on many variables, such as the number of installed apps, the CPU speed of the device, the amount of system RAM on the device, etc.
此外,在启动时从 BroadcastReceiver
开始活动是相当邪恶的。如果您想成为用户在重新启动后看到的第一件事,请编写主屏幕实现。
Also, starting an activity from a BroadcastReceiver
at boot time is fairly evil. If you want to be the first thing the user sees after a reboot, write a home screen implementation.
这篇关于BOOT_COMPLETED的BroadcastReceiver太慢的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!