0

カウントダウンタイマーがあります。60秒の終わりに私は新しい活動を始めました。正常に動作します。しかし、カウントダウンタイマーが終了する前にホームボタンまたは戻るボタンを押すと、その特定の時間の後、ホーム画面にいる場合でもアクティビティが自動的に開始されます。this.finish();を使用してアクティビティを終了しました。しかし、それでも機能しません。解決策を教えてください。

4

4 に答える 4

0

要件に応じて、アクティビティ内onPause()/onResume()またはアクティビティのタイマーを処理する必要があります。onDestroy()

例えば。タイマーの使用を単に停止したい場合:

timer.cancel()onDestroy()

このようなもの:

@Override
protected void onDestroy() {
timer.cancel();
super.onDestroy();
于 2012-08-09T05:18:03.127 に答える
0

バックグラウンドスレッドは実行を継続し、ホーム画面を表示している場合でもアクティビティが開始されるため、コードでホームボタンと戻るボタンを無効にする必要があります。私はあなたの活動のためにホームボタンを無効にするためにあなたにこのコードを与えています。

 @Override
 public void onAttachedToWindow() {
 this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
 super.onAttachedToWindow();
 }

これにより、そのアクティビティを実行している間、ホームボタンが無効になります。

これがお役に立てば幸いです。

于 2012-08-09T05:18:05.827 に答える
0

アクティビティのOnPauseイベントをオーバーライドできます。アクティビティがバックに送信されたら、それを終了します。

    @Override
    public void onPause(){
            super.onPause();
            timer.cancel();
            this.finish();
    }
于 2012-08-09T05:18:17.400 に答える
0

ユーザーがホームボタンまたは戻るボタンを押すと、タイマースレッドがバックグラウンドで実行されているため、onDestroy()メソッドをオーバーライドして、タイマーを停止する必要があります。

于 2012-08-09T07:21:48.897 に答える