我需要在按下按钮时退出整个应用程序的功能。 目前我有一个要求按两次退出应用程序的脚本,
因为它完成当前活动但不退出应用程序旧的访问活动保持不变。 这是我正在使用的代码。
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++;
}
答案 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