Android 如何使一个服务工作的过程中被杀死的力量?

Android 如何使一个服务工作的过程中被杀死的力量?,android,android-service,android-service-binding,Android,Android Service,Android Service Binding,我正在从调用startSertice()/stopService()。即使启动服务的活动已关闭,但一切正常。在“运行应用程序”中,我可以看到1个进程,1个服务正在运行。但是当我使用任务管理器类应用程序终止应用程序时,进程被终止,服务无法工作,尽管正在运行的应用程序显示0个进程,1个服务。如何使服务在这种情况下工作?我在其他一些安全应用程序中也观察到了同样的情况,比如Avast,它具有0个进程,1个服务,而服务工作正常。请帮我解决这个问题 以下是单击时的活动方法 @Override pub

我正在从调用
startSertice()/stopService()。即使启动服务的活动已关闭,但一切正常。在“运行应用程序”中,我可以看到1个进程,1个服务正在运行。但是当我使用
任务管理器
类应用程序终止应用程序时,进程被终止,服务无法工作,尽管正在运行的应用程序显示
0个进程,1个服务
。如何使服务在这种情况下工作?我在其他一些安全应用程序中也观察到了同样的情况,比如Avast,它具有
0个进程,1个服务
,而服务工作正常。请帮我解决这个问题

以下是单击时的活动方法

@Override
    public void onClick(View arg0) {
        boolean value = checkBox.isChecked();

        if(value){
            // start the service
            startService(new Intent(this, MyService.class));
            Toast.makeText(this, "Background service started", Toast.LENGTH_SHORT).show();
        } else {
            stopService(new Intent(this, MyService.class));
            Toast.makeText(this, "Background service stopped", Toast.LENGTH_SHORT).show();
        }
    }  
以下是服务类别:

public class MyService extends Service{

@Override
public IBinder onBind(Intent arg0) {
    // TODO Auto-generated method stub
    return null;
}

@Override
public void onCreate(){
    super.onCreate();
    Log.d("@@@@@@Service","Service created successfully");
}

@Override
public int onStartCommand(Intent intent, int flags, int stardId){
    Log.d("@@@@@@Service","Service started successfully");
    IntentFilter powerButtonIntentFilter = new IntentFilter();
    powerButtonIntentFilter.addAction("android.intent.action.SCREEN_ON");
            this.registerReceiver(pbReceiver, powerButtonIntentFilter);
    Log.d("#######","Power button register registered");
    return START_STICKY;
}

@Override
public void onDestroy(){
    Log.d("@@@@@@Service","Service destroyed successfully");
    this.unregisterReceiver(pbReceiver);
    Log.d("#######","Power button register un-registered");
    super.onDestroy();
}
}
在理想情况下,一切正常。即使启动服务的活动已关闭,广播接收器仍能正确收听屏幕显示操作。我可以看到应用程序在“设置”中运行。但当我使用任务管理器类应用程序强制终止进程时,进程正在终止,在运行应用程序时,我可以看到0个进程,1个服务正在运行。虽然该服务是在任务管理器强制关闭应用程序后运行的,但广播接收器并没有监听屏幕上的操作。请帮我解决这个问题


谢谢,JK

首先,你需要扩展“不工作”这一非常广泛的概念。其次,我建议您发布服务类中的代码