我有一个时间栏。当该时间栏结束时,它将启动一个新活动,但是当我离开该应用程序时,该时间栏将继续进行,当结束时,则将启动一个新活动,然后我的手机将再次打开该应用程序。离开应用程式后,我不知道该怎么办。酒吧结束后,Android不会打开它。
cdt = new CountDownTimer(oneMin, 1000) {
public void onTick(long millisUntilFinished) {
int total = (int)(((float) millisUntilFinished / (float) oneMin) * 100.0);
pB.setProgress(total);
}
public void onFinish() {
// DO something when 1 minute is up
gameOver();
}
}.start();
private void gameOver() {
cdt.cancel();
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
intent.putExtra("SCORE", punkte);
startActivity(intent);
}
答案 0 :(得分:0)
嗯,使用处理程序, 例如,因此此处理程序将每2秒执行一次(根据您的需要进行调整), 当应用关闭时,将触发stop()并删除回调,所有这些都将在Main线程中发生。 我使用了片段样本。
Handler mHandler;
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mInflatedView = inflater.inflate(R.layout.fragment_scan, container, false);
if (LOG_DEBUG) Log.w(TAG, "onCreateView: ");
mHandler = new Handler();
mHandler.post(mRunnable);
return mInflatedView;
}
private Runnable mRunnable = new Runnable() {
@Override
public void run() {
Log.w(TAG, "run: ");
/* my set of codes for repeated work */
mHandler.postDelayed(this, 2000); // reschedule the handler
}
};
@Override
public void onStop() {
super.onStop();
if (mHandler != null) {
mHandler.removeCallbacks(mRunnable);
mHandler = null;
}
}