0

1 時間などの間隔でアプリケーションを再起動する必要があります。しかし、以下のコードを試すと、新しいアクティビティが開始されますが、閉じたいアクティビティはまだスレッドとしてバックグラウンドで実行されています:S

私は何をしなければなりませんか?ありがとう..

if (timeOutOK) {

            finish();
            Intent i = getBaseContext().getPackageManager()
                    .getLaunchIntentForPackage(
                            getBaseContext().getPackageName());
            i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(i);

        }
4

1 に答える 1

0

あなたはおそらくどこかで活動への生きた参照を保持しています. 終了が呼び出された後でも、古いアクティビティへのライブ参照がなくなるまで、古いアクティビティは GC されないため、代わりに新しいアクティビティを指すようにすべての参照を更新する必要があります。

スレッドとしてバックグラウンドで実行されていると言うのは意味がありませんが、適切に処理されない限り、アクティビティはバックグラウンド スレッドまたは UI スレッドで操作を実行し続ける可能性があります。

于 2012-11-28T16:28:17.757 に答える