目前我正在为倒数计时器创建一个服务,即使应用程序被销毁,我也希望运行计时器。
如果我使用START_NOT_STICKY
而不是停止Application destroy上的服务。如果我使用START_STICKY
而不是重新启动Application destroy上的服务。
这是我的代码:
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 :(得分:0)
为了解决这个问题,我在服务中使用了TimerTask。在这里,您可以找到Android Countdown Timer Run In Background
的演示由于