大家,我做了很多研究,但没有人给我正确的答案。 我很惊讶,因为我的问题很简单,但没有找到一个解决方案。
我发现了很多像我这样的问题,但是人们回答他们的问题,我现在真的很厌烦这是我的最后一次也是最后的尝试 如果你们中的任何人解决它,我将不胜感激 让我再次点亮mu问题:
我只是想做一个听电源按钮的简单服务(真的很简单),现在我做了那么简单的事情,我的意思是我用广播接收器做了一个服务ok(很简单),它运行良好,但!!!每当我从后台任务中杀死应用程序,然后服务自动停止,我想要的是什么,杀死任务不会影响我的服务(这有多简单)
(注意:1。我已经使用了START_STICKY和Service.START_STICKY 2.我也做了一件坏事,就是在onDestroy中称为服务。 但仍然竖起大拇指。 ) 请给我一个很好的解决方案 我只会在回答后表示感谢 (因为我真的很讨厌这个) 这是我的代码
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;
}
}}
答案 0 :(得分:1)
我对此感到非常愚蠢,嘿,我得到了答案 那些认为不可能出错的人
我只是尝试使用其他设备,效果很好
我的设备的问题是我有棉花糖,所以如果有人允许它允许权限管理员(工作正常)。
感谢您的时间:)