在ColorOS上从任务管理器中删除应用程序后,后台服务被杀死

库纳尔

我正在开发一个应用程序,其中一项服务需要始终运行以在后台执行某些特定操作。因此,无论何时从任务管理器中删除服务时,我都会使用广播接收器重新启动该服务。因此,为此,我从用户处获得了自动启动/电池优化权限,以使其重新启动。

除了在ColorOS上,几乎所有领先的设备制造商都可以使用这种方法,并且只要为我的应用程序启用了“自动启动/电池优化许可”,在ColorOS上的所有其他设备上,该方法都可以使用。

原因是,我无法将用户重定向到“自动启动”或“电池优化”设置页面

我尝试使用以下代码从我的应用程序打开“自动启动设置”活动:

Intent autostartIntent = new Intent();
autostartIntent.setComponent(new ComponentName("com.coloros.safecenter", "com.coloros.safecenter.permission.startup.StartupAppListActivity"));
startActivity(autostartIntent);

我也尝试过手动设置省电设置,以检查是否在任何情况下都有效。但是无论如何似乎没有任何效果。

我正在寻找一种将用户重定向到自动启动权限页面或电池优化设置页面的方法。任何处理过类似问题的人都可以提出一些解决方案,甚至可以解决相同的问题。

库纳尔

得到它的工作!

我已将用户重定向到应用程序详细信息页面,他/她需要在其中打开“自动启动”选项。这将使服务在ColorOS上运行。以下是将用户重定向到应用程序详细信息页面的代码,在这里用户需要打开自动启动功能。

if ("oppo".equalsIgnoreCase(Build.MANUFACTURER)) {
    AlertDialog.Builder builder = new AlertDialog.Builder(PermissionsActivity.this);
    builder.setTitle("Allow Auto-startup");
    builder.setMessage("To access content on lock screen, enable ‘Allow Auto-startup’ for JiffyFeed");
    builder.setPositiveButton("Allow",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
                            Uri.fromParts("package", getPackageName(), null));
                    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    startActivity(intent);
                }
            });

    builder.setNegativeButton("Deny", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialogInterface, int i) {
            // Do something
        }
    });
    builder.show();
}

此外,我也使用了替代方法。我正在使用始终保持运行的NotificationListenerService,因此我在收到新通知时重新启动服务,因此,每次出现新通知时,它都会唤醒我需要始终保持运行的服务。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

杀死应用程序后,我的前台服务在诸如vivo的某些设备上被杀死了?

应用程序在android中被杀死后后台服务无法正常工作

通过任务管理器杀死我的应用程序后,如何清除我的SharedPreferences?

应用程序被任务管理器杀死后,服务是否仍可以运行?

当应用程序被杀死时,Android警报管理器无法正常工作

任务管理器中的 Python 或 Windows 中的后台服务?

当应用从Android上的任务管理器中被杀死时,代码将在哪里停止运行

在任务管理器(Windows 8.1)中删除应用程序历史记录

任务管理器中的多个应用程序

在任务管理器中显示应用程序

注销应用程序后如何停止后台服务?

从最近删除应用程序时停止后台服务

如何按需运行后台服务-不在应用程序启动或计时器上运行

在后台停留数分钟后,应用程序被杀死

当应用程序被杀死或关闭时,我如何保持后台 android 服务运行

在android中更新应用程序后,后台服务会怎样?

从后台服务打开应用程序

通过任务管理器关闭后,应用程序不会再次启动

使用任务管理器关闭应用程序时停止Android服务

C#-如何删除(32位)-从应用程序以任务管理器结尾

为什么即使关闭应用程序后,我的应用程序进程仍在任务管理器中存在一段时间?

图形应用程序/端口/任务管理器?

应用程序被杀死时,SharedPreferences被删除

excel应用程序在打开时未显示在任务管理器中

应用程序在任务管理器中但不可见

如果应用程序从任务管理器中终止,NSUrlSession是否继续文件传输?

如何获得任务管理器中显示的应用程序内存使用情况?

是否可以在.NET Core Web应用程序的任务管理器中设置显示名称?

如何获得任务管理器中显示的活动窗口应用程序名称