Android 应用程序仅在华为设备中关闭时服务被终止

Android 应用程序仅在华为设备中关闭时服务被终止,android,android-service,Android,Android Service,我总是用服务来敬酒,但在我杀死应用程序时,华为设备服务就被杀死了。 我不知道为什么 我的服务是: @Override public int onStartCommand(Intent intent, int flags, int startId) { onTaskRemoved(intent); new CountDownTimer(99999999L,5000 ) { @Override public void onTick(long arg0)

我总是用服务来敬酒,但在我杀死应用程序时,华为设备服务就被杀死了。
我不知道为什么

我的服务是:

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    onTaskRemoved(intent);
    new CountDownTimer(99999999L,5000 ) {
        @Override
        public void onTick(long arg0) {
                Toast.makeText(getApplicationContext(), "hihihi", Toast.LENGTH_LONG).show();
        }

        @Override
        public void onFinish() {
        }
    }.start();
    return START_STICKY;
}

@Override
public IBinder onBind(Intent intent) {
    // TODO: Return the communication channel to the service.
    throw new UnsupportedOperationException("Not yet implemented");
} 

你应该停止@Override onDestroy()方法上的服务,这是一个老问题,但我认为重要的是要知道华为有一个叫做“电源密集型应用程序监视器”的功能

它会杀死所有在后台运行很长时间的应用程序,除非用户授予它特殊权限

执行此操作的路径: 设置->安全和隐私->位置服务->最近的位置请求:您的应用程序名称->电池->取消选中电源密集型提示,应用程序启动:手动管理:检查所有三个位置:自动启动、辅助启动、后台运行


我不知道是否有办法通过编程实现这一点。我认为最好的办法是创建一种帮助活动,并向用户解释如果应用程序无法工作该怎么办。

我不希望停止服务。我希望服务永远保持连续性。你的应用程序正在活动中干杯,因此当你关闭活动时,你不能继续呼叫Toast或它将使您的活动崩溃应用程序不能仅在华为设备上继续调用Toast。我在三星设备上进行了测试,一切正常。这是因为在华为和小米,您不能在后台监听事件中保持应用程序打开,如果您想模仿三星,您应该阻止应用程序,不要让它关闭[此处有扩展说明]此服务希望检查用户何时启动应用程序,并在应用程序未运行时发送通知。此服务应在所有设备中运行。但此设备会终止此服务,我不知道。