我有三个活动,每个活动都有不同的布局..
所有三种布局都有一个共同点(三个ImageButtons)可以在活动之间切换。在图像按钮的onClick中,我使用意图打开活动。
问题在于: ActivityA播放一首歌,现在当我点击播放时,歌曲开始播放,如果我决定切换到activityB,它会打开。从活动B,如果我想通过单击相应的ImageButton返回ActivityA,它会创建一个活动的新实例,其默认布局(没有播放歌曲)但我仍然可以听到这首歌。
意味着创建了一个新的ActivityA实例,我不希望它像这样,我希望当我单击相应的ImageButton时,它会转到上一个活动,其状态与我在切换之前保持的状态相同到ActivityB。
我认为这可能会解决问题,但我不认为它会考虑我有三个活动(如果只是两个活动,可能会使用它)
public void onClick(View view) {
Intent intent = new Intent();
setResult(RESULT_OK, intent);
finish();
}
答案 0 :(得分:2)
我建议使用标签导航或导航微调器而不是创建新活动。
但是如果你真的想要使用单独的活动,你可以尝试将它放在清单文件的活动标签中:
android:launchMode="singleTop"
http://developer.android.com/guide/topics/manifest/activity-element.html#lmode
答案 1 :(得分:1)
我使用
开始工作android:launchMode="singleTask"
在android清单中。
android:launchMode="singleTop"
Mark Bukeima上面提到的并没有起作用,但他确实让我朝着正确的方向努力,知道我要使用android:launchMode =“singleTask”。
答案 2 :(得分:0)
可能是因为您使用starActivity()
代替startActivityForResult()
开始您的活动,以便从 ActivityA 切换到 ActivityB 。
这是你应该怎么做的:
/* In ActivityA */
public void onClick(View view) {
Intent intentToB = new Intent(this, ActivityB.class);
startActivityForResult(intentToB, 0); // Will start B whithout killing A
}