退出确认后退出申请

时间:2014-07-21 13:02:16

标签: android toast onbackpressed

我需要在按下按钮时退出整个应用程序的功能。 目前我有一个要求按两次退出应用程序的脚本,

因为它完成当前活动但不退出应用程序旧的访问活动保持不变。 这是我正在使用的代码。

int i = 1;
@Override
public void onBackPressed() {       
    if (i == 1) {
        Toast.makeText(getApplicationContext(), "Press back once more to exit.", Toast.LENGTH_SHORT).show();
    } else if(i>1) {
        finish();
    }
    i++;
}

3 个答案:

答案 0 :(得分:0)

请尝试以下代码。

第1步:在常量类上创建

public class Constant
{
    public static int ACT_COUNT=0;
}

第2步:创建BaseActivity类

public class BaseActivity extends Activity
{
private static long back_pressed;
    @Override
    protected void onCreate(Bundle arg0)
    {
    super.onCreate(arg0);
    Constant.ACT_COUNT++;
    }


   @Override
   public void onBackPressed()
   {
    /** If you want to take confirmation then display Alert here...**/
        if(Constant.ACT_COUNT<=1)
        {
            if (back_pressed + 2000 > System.currentTimeMillis()) 
               finish(); /** otherwise directly exit from here...**/
            else 
               Toast.makeText(getBaseContext(), "Press once again to exit!", Toast.LENGTH_SHORT).show();

            back_pressed = System.currentTimeMillis();
        }
        else
            super.onBackPressed();
    }

    @Override
    protected void onDestroy()
    {
        super.onDestroy();
        Constant.ACT_COUNT--;
    }

}

注意:您必须在应用程序中使用BaseActivity而不是Activity,但登录活动和注册活动除外(如果它在您的应用程序中)。

答案 1 :(得分:0)

finish();不会关闭应用程序,只是完成当前活动并将您带回上一个正在运行的活动。而是使用System.exit(1);

答案 2 :(得分:-2)

仅在第二次按下时返回印刷工作并通知用户再按一次退出。

private static long back_pressed;

@Override
public void onBackPressed()
{
        /** If you want to take confirmation then display Alert here...**/
        if (back_pressed + 2000 > System.currentTimeMillis()) 
           finish(); /** otherwise directly exit from here...**/
        else 
           Toast.makeText(getBaseContext(), "Press once again to exit!", Toast.LENGTH_SHORT).show();

        back_pressed = System.currentTimeMillis();
}

参考。 Android Snippet