欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

android应用退出后广播无效,关闭应用程序后,保持广播接收器运行

发布时间:2023/12/10 45 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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应用退出后广播无效,关闭应用程序后,保持广播接收器运行的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。