2016-11-04 2 views
1

В настоящее время я создаю службу для таймера обратного отсчета, и я хочу запустить таймер, даже если приложение уничтожено.Таймер обратного отсчета в классе обслуживания

Если я использую START_NOT_STICKY, то он прекратит службу по уничтожению приложения. и если я использую START_STICKY, чем его перезапуск, служба по уничтожению приложения.

Вот мой код:

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 

public class MainActivity extends AppCompatActivity implements View.OnClickListener{ 
Button btn_testing; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    init(); 
    listener(); 

} 

private void init(){ 
    btn_testing = (Button)findViewById(R.id.btn_testing); 


} 

private void listener(){ 
    btn_testing.setOnClickListener(this); 

} 

@Override 
public void onClick(View v) { 

    switch (v.getId()){ 


     case R.id.btn_testing: 
      startService(new Intent(this, Service_Tesing.class)); 
      break; 
    } 

} 

}

Вот мой Класс обслуживания:

import android.app.IntentService; 
import android.app.Service; 
import android.content.Intent; 
import android.os.CountDownTimer; 
import android.os.IBinder; 
import android.support.annotation.Nullable; 
import android.util.Log; 



public class Service_Tesing extends Service { 


@Override 
public void onCreate() { 
    super.onCreate(); 
    CountDownTimer countDownTimer = new CountDownTimer(30000,1000) { 
     @Override 
     public void onTick(long millisUntilFinished) { 
      Log.e("Timer", millisUntilFinished+""); 
     } 

     @Override 
     public void onFinish() { 
      Log.e("Finish","Finish"); 

     } 
    }.start(); 


} 

@Override 
public int onStartCommand(Intent intent, int flags, int startId) { 
    stopSelf(); 
    return START_STICKY; 

//  return Service.START_STICKY_COMPATIBILITY; 
} 

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

}

+0

'Я хочу, чтобы запустить таймер, даже если приложение destory' затем запустить его в отдельном процессе –

ответ

Смежные вопросы