从后台服务打开应用程序屏幕并锁定 phone 屏幕时冻结
App screen is freezes when It is opened from background service and phone screen is locked
我在收到通知时从后台打开我的应用程序。为此,我正在使用一项服务。每当我的应用程序在后台运行并且收到新通知时,应用程序将自动打开。它工作正常。
但是当应用程序处于后台并且 phone 屏幕被锁定时,现在当通知到来时,它会显示在屏幕上(锁定屏幕)并且当用户打开 phone 锁时,我的应用程序的屏幕将可见但是屏幕不会响应,屏幕颜色也会像灰色布局一样。
要打开我正在使用服务的应用程序,代码是:
Intent serviceIntent = new Intent(getApplicationContext(), NewTaskService.class);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
startForegroundService(serviceIntent);
} else {
startService(serviceIntent);
}
在 NewTaskService 中 Class 我正在打开我的应用程序。
附上打开应用程序时出现锁定屏幕通知的结果屏幕图像。
应用似乎在主线程上做了很多工作。你为什么不尝试在多线程中推送你的代码或使用异步 class 来处理后台的所有事情
基本上,这是由于一个对话框。当打开应用程序并且用户解锁手机屏幕时,对话框消失但屏幕可见,就像有一个对话框一样。屏幕没有冻结或卡住,而且由于该对话框,屏幕呈灰色。
因为在这种情况下对话框视图消失了。
我在收到通知时从后台打开我的应用程序。为此,我正在使用一项服务。每当我的应用程序在后台运行并且收到新通知时,应用程序将自动打开。它工作正常。 但是当应用程序处于后台并且 phone 屏幕被锁定时,现在当通知到来时,它会显示在屏幕上(锁定屏幕)并且当用户打开 phone 锁时,我的应用程序的屏幕将可见但是屏幕不会响应,屏幕颜色也会像灰色布局一样。
要打开我正在使用服务的应用程序,代码是:
Intent serviceIntent = new Intent(getApplicationContext(), NewTaskService.class);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
startForegroundService(serviceIntent);
} else {
startService(serviceIntent);
}
在 NewTaskService 中 Class 我正在打开我的应用程序。
附上打开应用程序时出现锁定屏幕通知的结果屏幕图像。
应用似乎在主线程上做了很多工作。你为什么不尝试在多线程中推送你的代码或使用异步 class 来处理后台的所有事情
基本上,这是由于一个对话框。当打开应用程序并且用户解锁手机屏幕时,对话框消失但屏幕可见,就像有一个对话框一样。屏幕没有冻结或卡住,而且由于该对话框,屏幕呈灰色。
因为在这种情况下对话框视图消失了。