开始一个新的活动也会触发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()中。

+0

谢谢,这工作完美 – Vairon 2012-02-18 23:27:37

这是设计。 onPause()方法每次运行另一个活动涵盖当前活动,即使它是您自己的活动。请参阅activity documentation。真正的问题是,你为什么要开始onPause()的主要活动?

+0

我用它来防止用户点击后退按钮。但是现在你提到它了,而且我正在弄清楚这就是后退按钮是正确的吗? – Vairon 2012-02-18 23:04:02