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。我在三星设备上进行了测试,一切正常。这是因为在华为和小米,您不能在后台监听事件中保持应用程序打开,如果您想模仿三星,您应该阻止应用程序,不要让它关闭[此处有扩展说明]此服务希望检查用户何时启动应用程序,并在应用程序未运行时发送通知。此服务应在所有设备中运行。但此设备会终止此服务,我不知道。