服务类中的倒数计时器

时间:2016-11-04 07:50:30

标签: android android-service

目前我正在为倒数计时器创建一个服务,即使应用程序被销毁,我也希望运行计时器。

如果我使用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;
}

}

1 个答案:

答案 0 :(得分:0)

为了解决这个问题,我在服务中使用了TimerTask。在这里,您可以找到Android Countdown Timer Run In Background

的演示

由于