我創建了一個小型應用程序的記憶遊戲。在那個應用程序中,我創建了一個計時器,顯示用戶完成遊戲的時間。我的問題是定時器凍結後,我去到另一個頁面(如主屏幕),並回到遊戲 - 時間保持在同一時間停止.....(我知道它與某種方式相關onRestarte()方法但不知道該怎麼辦..)我希望計時器將在它停止的同時繼續。 (例如,如果用戶在遊戲中間有入場,然後想繼續)。如何在應用程序中繼續從定時狀態返回計時器
package com.example.kineret.memorygame;
public class Game4x4Activity extends AppCompatActivity implements View.OnClickListener{
TextView timerTextView;
long startTime = 0;
Handler timerHandler = new Handler();
Runnable timerRunnable = new Runnable() {
@Override
public void run() {
long millis = System.currentTimeMillis() - startTime;
int seconds = (int) (millis/1000);
int minutes = seconds/60;
seconds = seconds % 60;
timerTextView.setText(String.format("%d:%02d", minutes, seconds));
timerHandler.postDelayed(this, 500);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game4x4);
timerTextView = (TextView) findViewById(R.id.timerTextView4x4);
}
@Override
public void onPause() {
super.onPause();
timerHandler.removeCallbacks(timerRunnable);
}
@Override
public void onClick(View view) {
if(newGame) {
startTime = System.currentTimeMillis();
timerHandler.postDelayed(timerRunnable, 0);
newGame = false;
}
// rest of my code...
}
請你能解釋一點點嗎?你想要什麼 ?當用戶去另一個頁面計時器停止。但你希望那個計時器應該停止或不在後臺運行? –
不,我不希望當用戶轉到另一個頁面時計時器將在後臺繼續。我希望當應用程序處於後臺時停止時間,並且會從用戶返回應用程序之前的相同位置繼續。 –