我试图在从膨胀的设置菜单中进行选择之后完成我的活动,但由于某种原因,它没有完成。知道为什么吗?
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()){
case R.id.action_settings:
Intent i = new Intent (getApplicationContext(), Prefs_Activity.class);
startActivity(i);
finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}在完成了设置活动之后,为了重新启动mainactivity,最终得到了一个由两个主体活动组成的堆栈.
我的第一个想法是把完成方法移到起始活动之上.但这似乎会扼杀以下代码..。
发布于 2013-09-21 08:32:59
活动实际上已经结束了。问题在于,在Prefs_Activity类中调用finish将重新启动活动类,从该类中派生startactivity意图,并以一个意图启动该活动.
一如既往的社区,感谢您的帮助!
发布于 2013-09-21 08:34:52
替换以下代码
Intent i = new Intent (getApplicationContext(), Prefs_Activity.class);
finishFromChild(CurrentActivity.this);
startActivity(i);
return true;而不是你的
Intent i = new Intent (getApplicationContext(), Prefs_Activity.class);
startActivity(i);
finish();
return true;参考文献:http://developer.android.com/reference/android/app/Activity.html#finishActivityFromChild(android.app.Activity
https://stackoverflow.com/questions/18930380
复制相似问题