为什么重启服务

时间:2017-09-29 12:44:19

标签: android android-service bindservice

我的服务有问题,该服务是从MainActivity(我正在进行测试)和服务扩展中运行的。

我想使用来自前台和后台的服务(当应用关闭时),我已经遇到了第一个问题:

当我关闭应用程序时,我的服务(有一个由LOG显示的计数器)正在重启。

我也希望能够在开放应用程序和关闭应用程序中使用该服务,换句话说,同时使用服务启动和链接服务

public class MyService extends Service {

private Thread backgroundThread;
private boolean isRunning;

public MyService() {
    Log.e("MyService","constructor");
}

@Override
public void onCreate() {
    super.onCreate();
    isRunning = false;
}

@Override
public IBinder onBind(Intent intent) {
    // TODO: Return the communication channel to the service.
    throw new UnsupportedOperationException("Not yet implemented");
}

@Override
public int onStartCommand(final Intent intent, int flags, int startId) {
    Log.e("onStartCommand","Servicio Llamado");

    if (!this.isRunning) {
        Log.e("onStartCommand","hilo iniciandose");
        this.backgroundThread = new Thread(myTask);
        runTask();
    }

    return super.onStartCommand(intent, flags, startId);
}

@Override
public void onDestroy() {
    super.onDestroy();
    Log.e("onDestroy","servicio destuido");
}

private void runTask(){
    this.isRunning = true;
    this.backgroundThread.start();
}
private Runnable myTask = new Runnable() {
    public void run() {
        Log.e("myTask","hilo iniciado");
        int i = 0;
        do{
            pauseService();

            Log.e("myTask","hilo contador: "+i);
            //Toast.makeText(getApplicationContext(),"CONTADOR = "+j, Toast.LENGTH_SHORT).show(); //no working :(
            i++;
        }while (i<10);

        /*
        //linea de detencion del servicio
        //stopSelf();

        isRunning=false;

        backgroundThread.interrupt();

        //backgroundThread = new Thread(myTask);
        */
        Log.e("myTask","hilo cerrado");
    }
};
private void pauseService(){
    try {
        Thread.sleep(2000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}
}

在主要活动中

 Intent intent = new Intent(MainActivity.this,MyService.class);
 intent.putExtra("iteraciones",10);
 startService(intent);

为什么因为当我关闭应用程序时服务重新启动,我该如何避免它呢?

0 个答案:

没有答案