3つのアクティビティがあり、AからB、BからCに移動します。スタックはCBAです(Cが上にあります)。Cアクティビティには、間隔ごとに機能するRunnableがあり、UIを更新するWebサービスに接続します。アクティビティCがバックグラウンドになり、破棄されてから再びフォアグラウンドになると、タスクはメインのアクティビティAから始まります。Cアクティビティに戻りたいと思います。可能です?
エミュレーターでは正常に動作しますが、このアプリケーションのみを実行しているスマートフォンでは、常にアプリケーション全体を破棄します。何かを行うことはできますか?UIから分離されたサービスを実行すると、これを改善できますか?
Edit2:AndroidManifestでこの宣言を試します
<activity android:name=".ActivityA" android:label="@string/app_name"
android:alwaysRetainTaskState="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="oauthht" android:host="hattrick"/>
</intent-filter>
</activity>
<activity android:name=".ActivityB" android:label="@string/ActivityB"
android:screenOrientation="portrait"></activity>
<activity android:name=".ActivityC" android:label="@string/ActivityC"
android:screenOrientation="portrait"
android:launchMode="singleTask">
Edit2:そしてアクティビティを呼び出すためのコード:
メインアクティビティA:
public void onClickButtonB(View button) {
Intent intent = new Intent();
intent.setComponent(new ComponentName(this,ActivityB.class));
startActivity(intent);
}
アクティビティB:
Bundle bundle = new Bundle();
bundle.putLong("selectedMatch", matchID);
Intent liveIntent = new Intent();
liveIntent.setComponent(new ComponentName(ActivityB.this, ActivityC.class));
liveIntent.putExtras(bundle);
startActivity(liveIntent);