シンプルな Android ゲーム アプリを開発しています。主なアクティビティ (以前はプレイしていたアクティビティ) で、状態が確認されたとき、1/2 秒後に現在のアクティビティを停止して再開したいと考えています。ゲームは時々うまく動作しますが、多くの場合、ランダムに、「エラーなしで」クラッシュします [アクティビティを再起動しませんが、ゲーム メニュー アクティビティ (メニュー、オプションなどに使用されるアクティビティ) に戻るビューを閉じます.. .)].
問題が発生したときのコードは次のとおりです。
if(scoreManager.isEndGame()){
final Handler mHandler = new Handler();
Runnable mUpdateTimeTask = new Runnable() {
public void run() {
long remainingTime = scoreManager.getSecondsUntilFinished();
scoreManager.setRemainingTime(remainingTime*1000);
finish();
startActivity(getIntent());
}
};
mHandler.postDelayed(mUpdateTimeTask, 500);
}
scoreManagerには、再起動するたびに、remainingTime でインスタンス化される CountDownTimer が含まれています (onCreate() でインスタンス化されます)。
LogCatで私は読んだ:
InputMethodManagerService : pid 18494 uid 10062 に setActive(false) 通知を送信する RemoteException を取得しました
I/ActivityManager : 表示 com.myproject.activities/.MenuActivity: +774ms (合計 +3s697ms)
基本的に、アクティビティが破棄され、再開されないことがよくあります。例外はスローされません。「HTC Desire」でこの問題をテストしています。
助けてください。