-6

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

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

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++;
}
4

3 回答 3

0

请尝试以下代码。

第 1 步:在常量类上创建

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

第二步:创建 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,如果登录活动和注册活动在您的应用程序中,则除外。

于 2014-07-21T13:47:13.880 回答
0

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

于 2018-11-13T10:45:52.493 回答
-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 代码段

于 2014-07-21T13:05:24.673 回答