我有 3 个活动,然后我从 A 导航到 B,从 B 导航到 C。堆栈是 CBA(顶部是 C)。C Activity 有一个 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);