0

通話の開始時にアプリケーションを再起動しようとしています。電話の状態の変化をリッスンしています。状態がオフフックになったら、アプリケーションを再起動しようとします。

これは、私が使用している起動アクティビティ コードです。

Intent i = new Intent(context, MyClass.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);

アクティビティが再作成されないということは、「singleTop」起動モードを使用しています。問題は、活動が再開されたが、前に出ていないことです。多分誰かがこれに対する解決策を持っていますか?ありがとう。

4

3 に答える 3

1

マニフェストで Activity を singleInstance に設定しようとしましたか?

<activity
        android:name=".Main"
        android:label="@string/app_name"
        android:launchMode="singleInstance">

これにより、同じアクティビティが開きます (インスタンスは 1 つしか存在できないため)。これは私にとってはうまくいきますが、いくつかの欠点があります。元。アクティビティを別のタスクに使用することはできません。

于 2012-12-11T12:26:27.303 に答える
0

アプリケーションがまだ実行中で、作成せずに開始できるという保証はありません。このため、中断したところから続行するためにフラグに頼る必要はありません。代わりに、アプリケーションが非表示になっているときに状態を保存し、アプリケーションが再開されたときにそれを復元するのはあなたの責任です。これを行うには、Android アクティビティ ライフサイクルに基づいてさまざまな方法があります ( http://developer.android.com/reference/android/app/Activity.htmlを参照)。これを行うには、状態をメソッドに保存し、onPause()メソッドで復元しonResume()ます。

于 2012-12-11T12:38:43.150 に答える
0

以下を試してください:

            Intent intent = new Intent(context, MainActivity.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
            intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);

            finish();
            startActivity(intent);
于 2012-12-11T12:14:22.043 に答える