应用在 BackPressed 时被杀死 android

App killed onBackPressed android

我从 activity 启动一个服务,该服务从服务获取消息并显示在对话框中。当我单击返回或主页按钮时,应用程序被终止。并且在多任务区域找不到应用程序。我没有在 onBackPressed() 上编写任何代码。我该如何纠正这个问题?服务代码。

public class BleepService extends Service{
String gotAlert;
Context context;
String drAlert=null;
public static boolean status = false;

public static final String TAG = BleepService.class.getSimpleName();
int counter = 0;    
static final int UPDATE_INTERVAL = 5000;
private Timer timer = new Timer();
String resServer;

@Override
public IBinder onBind(Intent intent) {
    return null;
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    Log.i("SERVICE", "COMES TO THE ON STARTCOMMAND");   
    doRepeat();     
    //return super.onStartCommand(intent, flags, startId);
    return START_STICKY; 
}

private void doRepeat() {
    Log.i("SERVICE", "COMES TO THE DOREPEAT METHOD");
    timer.scheduleAtFixedRate(new TimerTask() {
    public void run() { 

    new GetStatus().execute();      

    }
    }, 1000, UPDATE_INTERVAL);
}

class GetStatus extends  AsyncTask<Void, Void, String>
{
    @Override
    protected String doInBackground(Void... params) {           
        ServiceHandler sh = new ServiceHandler();
        resServer = sh.makeServiceCall(Urllist.urlGetPagerStatus, ServiceHandler.GET);
        while(resServer.equals("1"))
        {
        status = true;
        resServer = sh.makeServiceCall(Urllist.urlGetMsg, ServiceHandler.GET);              
        }
        return resServer;
    }
    @Override
    protected void onPostExecute(String result) {

        Log.i("SERVICE", "COMES TO THE GetStatus AsyncTask Class");
        super.onPostExecute(result);        
        if(!result.equals("0"))
        {       

            Intent i = new Intent("com.bleep.DR_ALERT_MESSAGE");
            i.putExtra("msg", result);
            sendBroadcast(i);

        }else{
            Toast.makeText(getApplicationContext(), "No New Message", Toast.LENGTH_SHORT).show();
        }
    }       
}


@Override
public void onDestroy() {
    //timer.cancel();
    //super.onDestroy();
    /*if (timer != null){
        timer.cancel();
    }*/
}
}

确保您的 Service returns START_STICKY 在其 onStartCommand 中。这样 OS 将在它被杀死时重新启动它。

当应用程序处于后台时,Android 随时终止应用程序是合法的。

然而,OS 很少杀死 Services。你确定你不会以某种方式自己杀死它,也许是因为一些错误?