onBackPressed() 覆盖
Posted
技术标签:
【中文标题】onBackPressed() 覆盖【英文标题】:onBackPressed() override 【发布时间】:2014-02-25 11:18:10 【问题描述】:这是我的应用程序的结构:
Activity A 是一个ListViewActivity
,带有一个用于启动 B Activity 的按钮。
在完成表单后的B活动中,有一个启动C活动的按钮。
C 活动保存设置并创建新记录以显示在 A 活动中。 Button save in C 活动启动 A 活动。
如果用户在 B 上按下 A 活动的返回按钮时多次执行此过程(没有通过 C,因为当我启动它时我设置了 FLAG_ACTIVITY_NO_HISTORY
)并且他第二次按下返回再次返回A,重复次数等于创建的记录数。
用返回按钮关闭应用程序变成了一个漫长的过程。
我希望 A 活动中的 onBackPressed
始终关闭应用程序。
英语不是我的语言,我希望我很清楚。
【问题讨论】:
【参考方案1】:总是像下面这样开始你的活动A
Intent intent = new Intent(current_activity_context, A.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
【讨论】:
【参考方案2】:finish() 方法会做到这一点。 像这样的
Intent intent = new Intent(getApplicationContext(),
Activity B.class);
Activity A.this.startActivity(intent);
finish();
【讨论】:
【参考方案3】:您必须重写 OnBackPressed 方法
@Override
public void OnBackPressed()
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
super.onBackPressed();//Optional
希望对你有帮助。
【讨论】:
【参考方案4】:试试这个
@Override
public void onBackPressed()
// Do Here what ever you want do on back press;
【讨论】:
以上是关于onBackPressed() 覆盖的主要内容,如果未能解决你的问题,请参考以下文章
android super.onBackPressed()计时