开始一个新的活动也会触发onPause方法
问题描述:
我有一个列表视图,其中显示“详细信息”,当用户单击某个项目时,我得到某个“细节”的位置,并将用户带到编辑屏幕将动态数据加载到某些变量。开始一个新的活动也会触发onPause方法
当我开始细节活动时,logcat告诉我细节活动和mainmenu活动都已启动,这会将我的用户带到mainmenu。这显然不会让任何人开心,我想知道是否有人可以为我提供一些帮助,为什么会发生这种情况?
代码:
DetailsButton:
removeLi.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> aV, View v, int pos,
long arg3) {
// TODO Auto-generated method stub
information.open();
information.delete(pos + 1);
information.close();
rowAdapter.notifyDataSetChanged();
whenAdapter.notifyDataSetChanged();
postedAdapter.notifyDataSetChanged();
detailsAdapter.notifyDataSetChanged();
editAdapter.notifyDataSetChanged();
removeAdapter.notifyDataSetChanged();
Dialog sucDeleted = new Dialog(ManageAppointment.this);
sucDeleted.setTitle("Sucesfully deleted");
TextView tvDintWorked = new TextView(ManageAppointment.this);
tvDintWorked.setText("The appointment at position:" + pos
+ " was sucesfully deleted");
sucDeleted.setContentView(tvDintWorked);
sucDeleted.show();
}
});
的方法的onPause:
@Override
protected void onPause() { // TODO Auto-generated method stub
super.onPause();
Intent main = new Intent("com.DCWebMakers.Vairon.MAINMENU");
startActivity(main);
}
感谢。
答
如果其他活动已启动并将其替换(如指定here),则始终会在每个活动上调用onPause()。如果要覆盖后退按钮的行为以启动特定的活动,请考虑重写onBackPressed()方法,而不是将代码添加到onPause()中。
答
这是设计。 onPause()
方法每次运行另一个活动涵盖当前活动,即使它是您自己的活动。请参阅activity documentation。真正的问题是,你为什么要开始onPause()
的主要活动?
+0
我用它来防止用户点击后退按钮。但是现在你提到它了,而且我正在弄清楚这就是后退按钮是正确的吗? – Vairon 2012-02-18 23:04:02
谢谢,这工作完美 – Vairon 2012-02-18 23:27:37