维护TabGroupActivity中子活动的状态



我的应用程序遵循了本教程。

我有:表1:Tabgroupactivity1>(startchildactivity) mainactivity>(startchildactivity)ListActivity>(startchildactivity)DetailActivity

同样,我还有另外两个制表符

问题是,当我从以下任何一个活动返回到前一个活动时,它(前一个)会重新启动。

我也试过用SINGLE_TOP和SINGLE_TASK来启动子活动,但在这个中,我只能通过一次

第二次不调用下一个(next/child)活动

所以我怎么能保持当前的活动状态,而它调用子活动和返回?

我正在使用以下intent onclick的listactivity:

Intent myintent = new Intent(getParent(),Second.class);
myintent.putExtra("id",favadapter.getItem(position).id.toString());
TabGroupActivity parentFav = (TabGroupActivity)getParent();
parentFav.startChildActivity("FavActivity", myintent);

实际上TabGroupActivity在android 2.1和2.2中有一个问题,活动没有正确地从堆栈中删除导致我们的实例每次重新启动。

为了克服这个问题,我们使用SINGLE_TOP和SINGLE_TASK,即使它会导致另一个问题只有一个实例运行而不是第二次因为在child finish中我们这样做,

Intent lastIntent = manager.getActivity(lastId).getIntent();
        Window newWindow = manager.startActivity(lastId, lastIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP));
        setContentView(newWindow.getDecorView());

意味着它删除所有的lasttid意图,并带来最新的一个,因为你的lasttid(这是在启动活动.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);

相关内容

  • 没有找到相关文章

最新更新