我有三个活动:A,B,C 从活动A,B我都可以打电话
startActivity(new Intent(this, C.class));
所以逻辑将类似于A-> B-> C或A-> C ..现在当我在C中时,我想回到B或A,这取决于哪个活动是C开始了。
现在问题是,当我在活动C中时,如何获得"返回"到父活动,我从中打开了这个活动C?
我一直尝试使用 NavUtils
和 Intent.FLAGS
,但我没有成功。
顺便说一句:我无法使用finish()
或onBackPressed()
。我在我的应用程序中使用自定义动态创建主题,当我使用onBackPressed()
时,它将在加载所需活动之前显示默认应用程序主题(带图标的默认白屏)。
感谢您的帮助。
答案 0 :(得分:1)
将此添加到活动C中,因此这部分解决了后退按钮。
<activity
android:name="your.package.name.C"
android:launchMode="singleInstance" >
</activity>
让我们解决按钮:
您必须使用putExtra
来表示C activity
的父级。例如,当你想从活动B调用它时:
Intent i = new Intent(B.this,C.class);
i.putExtra(MY_PARENT,"B");
startActivity(i);
并在名为activity C
的字符串中MY_PARENT
存储parent
值。然后当用户按UP button
读取并转到父母时。
这意味着在活动C:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Respond to the action bar's Up/Home button
case android.R.id.home:
Intent i = new Intent(C.this,Class.forName(parent));
startActivity(i);
return true;
}
return super.onOptionsItemSelected(item);
}
答案 1 :(得分:0)
您可以在onCreate
的{{1}}方法中创建和处理太多对象,这样会导致您在加载所需活动之前看到的延迟...
您可以在Activity
中执行所有这些创建和处理,并保持AsyncTask
方法清洁,然后您就不会再看到这种延迟了。