2016-10-07 18 views
0

我想返回到单身背压和双压力退出应用程序的家庭活动,但它不能正常工作我已经添加下面的代码亲切地帮助我。如何返回到单身背压的家庭活动

if (doubleBackToExitPressedOnce) 
{ 
      replaceFragment(new HomeActivity()); 
      super.onBackPressed(); 
      return; 
     } 

     this.doubleBackToExitPressedOnce = true; 
     Toast.makeText(this, "Please click BACK again to exit.", Toast.LENGTH_SHORT).show(); 

     new Handler().postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       doubleBackToExitPressedOnce = false; 
      } 
     }, 2000); 

请帮助我。

+0

是“HomeActivity”的一个片段吗? –

+0

是的它的一个片段 –

+0

任何人有任何想法,请帮助我。 –

回答

0

只是在你的处理器的运行方法添加此

  @Override 
      public void run() { 
       replaceFragment(new HomeActivity()); 
       ActivityName.super.onBackPressed(); 
       doubleBackToExitPressedOnce = false; 
      } 

OR 作出这样

else{ 
replaceFragment(new HomeActivity()); 
      super.onBackPressed(); 
} 
+0

无法正常工作。 –

+0

你已经实现了哪一个? –

+0

if(doubleBackToExitPressedOnce){ } else –

0
private static final int BACK_PRESS = 76; 

private Handler mHandler = new Handler() { 
    @Override 
    public void handleMessage(Message msg) { 
     super.handleMessage(msg); 
     if (BACK_PRESS == msg.what) { 
      goBack(); 
     } 
    } 
}; 

private void goBack() { 
    super.onBackPressed(); 
} 

@Override 
public void onBackPressed() { 
    if (mHandler.hasMessages(BACK_PRESS)) { 
     mHandler.removeMessages(BACK_PRESS); 
     replaceFragment(new HomeActivity()); 
    } else { 
     mHandler.sendEmptyMessageDelayed(BACK_PRESS, 500); // Your activity will close after 500ms 
    } 
} 

,你可以在你的情况不同的方式使用其他处理方法。

+0

什么是msg.what?如果条件为 –

+0

这只是我们使用mHandler.sendEmptyMessageDelayed(BACK_PRESS,500);发送给处理程序的空信息。这将以“BACK_PRESS”作为“what”值创建一条空消息。 –

+0

它没有奏效? –