Android-应保留在设备上的后退键上的同一页面上

时间:2013-10-18 10:00:57

标签: android

如果我登录时给出了密码和用户名,它会指向下一页,如果我点击后退我的设备上的按键而不是设备后面的按钮返回键,它应该保留在同一页面上并双击后退键应该用完应用程序。

有人可以向我推荐一些代码吗?尽快,如果我用完应用程序,它应该到我离开的页面。 我希望应用程序暂停或保持在我关闭它的同一页面上。在我退出应用程序之前,不应再要求登录。

5 个答案:

答案 0 :(得分:3)

覆盖活动中的onKeyDown方法,然后查找后退按钮。返回true以便消耗该事件。

    long backPressedAt = System.currentTimeMillis();
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            final long currentTime = System.currentTimeMillis();
            if (currentTime- backPressedAt < 888)
            {
              backPressCount++;
            }
            else
            {
              backPressCount = 0;
            } 
            backPressedAt = currentTime;
            if(backPressCount == 2)
            {
               return super.onKeyDown(keyCode, event);
            }
            return true;
       }
       return super.onKeyDown(keyCode, event);
   }

答案 1 :(得分:2)

@Override
public void onBackPressed() {

}

答案 2 :(得分:1)

试试这个代码段

@Override
    public void onBackPressed() {
        if (doubleBackToExitPressedOnce) {
            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);
    } 

Source

答案 3 :(得分:-1)

在按钮单击上覆盖onBackPressed方法。这将解决您的问题。

答案 4 :(得分:-2)

首先将登录活动代码下的noHistory=true添加到您的清单

<activity
    android:name="com.example.MainActivity"
    android:label="@string/app_name"
    android:noHistory="true" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

之后,将下面的onBackPressed()添加到您的下一个活动中

private int count=0;
    @Override
    public void onBackPressed() {
      if(count!=0)
        super.onBackPressed();
      count++;
    }