android应用退出后广播无效,关闭应用程序后,保持广播接收器运行
我認為接受的答案不是實際答案。我將解釋問題所在。我認為您是在Huawie,Oppo,Vivo,Xiomi,asus .......或某些設備上測試您的應用程序。使用這些設備,如果我們關閉應用程序,它們還將關閉我們的廣播接收器。因此,這就是問題。(要檢查是否使用帶有像素關系的模擬器)。我將解釋如何解決這個問題。''
我們會將我們的應用添加到受保護的應用列表中。OS僅允許他們繼續廣播接收機的活動。(將此數組聲明復制到您的代碼中)
private static final Intent[] POWERMANAGER_INTENTS = {
new Intent().setComponent(new ComponentName("com.miui.securitycenter", "com.miui.permcenter.autostart.AutoStartManagementActivity")),
new Intent().setComponent(new ComponentName("com.letv.android.letvsafe", "com.letv.android.letvsafe.AutobootManageActivity")),
new Intent().setComponent(new ComponentName("com.huawei.systemmanager", "com.huawei.systemmanager.optimize.process.ProtectActivity")),
new Intent().setComponent(new ComponentName("com.huawei.systemmanager", "com.huawei.systemmanager.appcontrol.activity.StartupAppControlActivity")),
new Intent().setComponent(new ComponentName("com.coloros.safecenter", "com.coloros.safecenter.permission.startup.StartupAppListActivity")),
new Intent().setComponent(new ComponentName("com.coloros.safecenter", "com.coloros.safecenter.startupapp.StartupAppListActivity")),
new Intent().setComponent(new ComponentName("com.oppo.safe", "com.oppo.safe.permission.startup.StartupAppListActivity")),
new Intent().setComponent(new ComponentName("com.iqoo.secure", "com.iqoo.secure.ui.phoneoptimize.AddWhiteListActivity")),
new Intent().setComponent(new ComponentName("com.iqoo.secure", "com.iqoo.secure.ui.phoneoptimize.BgStartUpManager")),
new Intent().setComponent(new ComponentName("com.vivo.permissionmanager", "com.vivo.permissionmanager.activity.BgStartUpManagerActivity")),
new Intent().setComponent(new ComponentName("com.samsung.android.lool", "com.samsung.android.sm.ui.battery.BatteryActivity")),
new Intent().setComponent(new ComponentName("com.htc.pitroad", "com.htc.pitroad.landingpage.activity.LandingPageActivity")),
new Intent().setComponent(new ComponentName("com.asus.mobilemanager", "com.asus.mobilemanager.MainActivity"))};
將這些代碼放入您的onCreate方法。在這里,我使用共享首選項僅在應用程序首次打開時對其進行檢查。
final SharedPreferences.Editor pref =? ? getSharedPreferences("allow_notify", MODE_PRIVATE).edit();? ? pref.apply(); final SharedPreferences sp =? ? getSharedPreferences("allow_notify", MODE_PRIVATE);
if(!sp.getBoolean("protected",false)) {
for (final Intent intent : POWERMANAGER_INTENTS)
if (getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY) != null) {
AlertDialog.Builder builder? = new AlertDialog.Builder(this);
builder.setTitle("Alert Title").setMessage("Alert Body")
.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
startActivity(intent);
sp.edit().putBoolean("protected",true).apply();
}
})
.setCancelable(false)
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.create().show();
break;
總結
以上是生活随笔為你收集整理的android应用退出后广播无效,关闭应用程序后,保持广播接收器运行的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Window】英文系统显示中文乱码
- 下一篇: JavaScript 回调函数中的 re