0

現在のアクティビティが 10 秒間アイドル状態の場合、10 個のアクティビティがあり、メイン ページに戻る必要があります。

各アクティビティで使用したコードは

final Handler handler=new Handler();
final Runnable r = new Runnable()
{
                public void run()
                {

                    handler.postDelayed(this, 10000);
                    Intent intent = new Intent(Business_Personal.this,PrintoActivity.class);
                    startActivity(intent);
                    Thread.interrupted();
                }
            };

            handler.postDelayed(r, 10000);
            Thread thread = new Thread()
            {
                @Override
                public void run() {
                    try {
                        while(true)
                        {
                            sleep(1000);
                            handler.post(r);

                        }
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            };

上記のコードを使用すると、3 番目のアクティビティまで正常に動作しますが、3 番目のアクティビティでは時間切れになり、メイン ページに戻ります

次のアクティビティに入るとき、前のスレッドを強制終了して新しいスレッドを作成するコードが必要です

またはそうでなければ

その前のスレッドを上書きする

4

1 に答える 1

0

アクティビティの onDestroy または onPause で false に設定したブール値を使用して、スレッドを停止する必要があります。

while(スレッドが必要){
}

public onDestroy(){
  必要なスレッド = false;
}
于 2012-05-14T04:38:29.527 に答える