大家好,我做了很多研究,但是没有人给我正确的答案。我很惊讶,因为我的问题这么简单,却没有找到一个解决方案。
我发现了很多像我这样的问题,但是人们的回答是一圈又一圈,我真的厌倦了这个,现在这是我最后一次也是最后一次尝试如果你们能解决这个问题,我会很感激让我在Brief中再次提问:
我只是想做一个简单的服务,听到电源按钮(真的很简单),现在我做了那件容易的事,我的意思是我做了一个服务与广播接收器ok(相当简单),它运行良好,但是!!每当我从后台任务中杀死应用程序时,服务就会自动停止,我想要的是,杀死任务不会影响我的服务(这是多么简单啊)
(注意:1。我已经使用了START_STICKY和Service。START_STICKY2.我还做了一件坏事,它在onDestroy中被称为service。但还是有人反对。)请给我一个好的解决方案我只有在回答后才会感激(因为我真的受够了)这是我的代码
MainActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
startService(new Intent(this, MyService.class));
}
MyService:
public class MyService extends Service {
private BroadcastReceiver mReceiver = null;
public MyService() {
}
@Override
public IBinder onBind(Intent intent) {
// TODO: Return the communication channel to the service.
throw new UnsupportedOperationException("Not yet implemented");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return Service.START_STICKY;
}
@Override
public void onCreate() {
IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);
mReceiver = new ScreenReceiver();
registerReceiver(mReceiver, filter);
}
@Override
public void onDestroy() {
super.onDestroy();
}
}
ScreenReceiver:
public class ScreenReceiver extends BroadcastReceiver {
public static boolean wasScreenOn = true;
@Override
public void onReceive(final Context context, final Intent intent) {
if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
Log.e("LightWriter", "I WORK BRO.");
wasScreenOn = false;
} else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
Log.e("LightWriter", "I WORK BRO.");
wasScreenOn = true;
}
}}
我觉得自己好蠢,嘿,我知道答案了1. 那些认为不可能的人错了
-
我刚用其他设备试了一下,效果很好
-
我的设备的问题是我有棉花糖,所以如果有人有它允许权限管理器的权限(工作正常)。
谢谢你的时间:)