android – 用于BOOT_COMPLETED的BroadcastReceiver太慢了
作者:互联网
以下是我的清单文件.
<?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);
}
}
}
没有错误.该应用程序正在重启电话时打开.但重启后启动应用程序需要一分钟的时间.重启后有没有什么可以立即启动应用程序?
解决方法:
Is there any what to start the application immediately after reboot?
没有.
有许多应用程序希望在启动时获得控制权.你的转弯速度将取决于许多变量,例如安装的应用程序数量,设备的CPU速度,设备上的系统RAM数量等.
此外,在启动时从BroadcastReceiver启动活动是相当邪恶的.如果您想成为用户在重新启动后看到的第一件事,请编写主屏幕实现.
标签:android,broadcastreceiver,bootcompleted 来源: https://codeday.me/bug/20190611/1217508.html