我的应用程序运行非粘性服务,每当我通过刷它从任务管理器关闭应用程序时,它也会立即终止我的服务。我只在Oppo手机中遇到这个问题。
答案 0 :(得分:1)
在Oppo F1上你需要将COL Reminder添加到“启动管理器” 允许在后台运行。
转到“安全中心”。单击“隐私权限”然后“启动” 经理“并允许”COL Reminder“在后台运行。
如果仍然无效,请检查以下步骤:
转到设置&gt; <电池和存储>电池管理器&gt;点击“电源” 消费细节“&gt;针对过度耗电进行优化。现在 取消选中您遇到的所有应用程序。
答案 1 :(得分:0)
许多智能手机如Xiamoi,Oppo,Vivo都会杀死后台服务,即使它运行时使用标记START_STICKY
来改善资源/电池优化。
您无法以编程方式默认启用自动启动功能。
许多解决方案/建议已在许多主题中得到解答。
这个是从this thread获取的,它将用户带到相应的自动启动/启动管理器/安全中心,您可以通过显示吐司/警报要求用户为您的应用启用自动启动,其余全部取决于用户:
try {
Intent intent = new Intent();
String manufacturer = android.os.Build.MANUFACTURER;
if ("xiaomi".equalsIgnoreCase(manufacturer)) {
intent.setComponent(new ComponentName("com.miui.securitycenter", "com.miui.permcenter.autostart.AutoStartManagementActivity"));
} else if ("oppo".equalsIgnoreCase(manufacturer)) {
intent.setComponent(new ComponentName("com.coloros.safecenter", "com.coloros.safecenter.permission.startup.StartupAppListActivity"));
} else if ("vivo".equalsIgnoreCase(manufacturer)) {
intent.setComponent(new ComponentName("com.vivo.permissionmanager", "com.vivo.permissionmanager.activity.BgStartUpManagerActivity"));
} else if("oneplus".equalsIgnoreCase(manufacturer)) {
intent.setComponent(new ComponentName("com.oneplus.security", "com.oneplus.security.chainlaunch.view.ChainLaunchAppListActivity")); }
List<ResolveInfo> list = context.getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
if (list.size() > 0) {
context.startActivity(intent);
}
} catch (Exception e) {
Crashlytics.logException(e);
}
对于Facebook,Instagram和其他Facebook家庭应用等某些应用,默认情况下启用了P.S。自动启动功能,他们可能会与设备制造商达成协议。