首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >未关闭finish方法调用的

未关闭finish方法调用的
EN

Stack Overflow用户
提问于 2013-09-21 08:07:52
回答 2查看 1.2K关注 0票数 1

我试图在从膨胀的设置菜单中进行选择之后完成我的活动,但由于某种原因,它没有完成。知道为什么吗?

代码语言:javascript
运行
复制
@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,最终得到了一个由两个主体活动组成的堆栈.

我的第一个想法是把完成方法移到起始活动之上.但这似乎会扼杀以下代码..。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-21 08:32:59

活动实际上已经结束了。问题在于,在Prefs_Activity类中调用finish将重新启动活动类,从该类中派生startactivity意图,并以一个意图启动该活动.

一如既往的社区,感谢您的帮助!

票数 0
EN

Stack Overflow用户

发布于 2013-09-21 08:34:52

替换以下代码

代码语言:javascript
运行
复制
    Intent i = new Intent (getApplicationContext(), Prefs_Activity.class);
    finishFromChild(CurrentActivity.this);
    startActivity(i);
    return true;

而不是你的

代码语言:javascript
运行
复制
    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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18930380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档