我已经按照this教程申请了我的申请。
我有: 选项卡1:Tabgroupactivity1>(startchildactivity)MainActivty>(startchildactivity)ListActivity>(startchildactivity)DetailActivity
同样我还有其他两个标签。
问题是,当我从以下任何一个活动返回到前一个活动时,它(前一个)重新启动。
我也试图用SINGLE_TOP和SINGLE_TASK开始儿童活动,但只有一次我可以通过这个
第二次不调用以下(下一个/孩子)活动
那么我怎样才能维持当前的活动状态,同时它要求子活动并返回?
我正在使用以下意图点击listactivty:
Intent myintent = new Intent(getParent(),Second.class);
myintent.putExtra("id",favadapter.getItem(position).id.toString());
TabGroupActivity parentFav = (TabGroupActivity)getParent();
parentFav.startChildActivity("FavActivity", myintent);
答案 0 :(得分:2)
实际上TabGroupActivity在android 2.1和2.2中有问题,没有从堆栈中正确删除的活动导致我们的实例每次都重启。
为了克服这个问题,我们使用SINGLE_TOP和SINGLE_TASK,即使它导致另一个问题,只有一个实例不是第二次运行,因为在孩子完成时我们确实喜欢这样,
Intent lastIntent = manager.getActivity(lastId).getIntent();
Window newWindow = manager.startActivity(lastId, lastIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP));
setContentView(newWindow.getDecorView());
表示删除所有lastID意图并带上最新的意图,因为你的lastId(在启动活动.startChildActivity("FavActivity", myintent);
时使用)对于多个实例是相同的。
为了让您的子活动第二次运行或多个实例使用动态意图ID 来启动子活动。
例如,
Intent myintent = new Intent(getParent(),Second.class);
myintent.putExtra("id",favadapter.getItem(position).id.toString());
TabGroupActivity parentFav = (TabGroupActivity)getParent();
parentFav.startChildActivity("FavActivity"+System.currentTimemillis(), myintent);