点击两次Android的返回按钮退出应用程序

10 浏览
0 Comments

点击两次Android的返回按钮退出应用程序

我的应用程序包含一个初始的闪屏界面,接着是一个listview(主活动)。点击listview的每一行会打开一个活动。我的要求是,如果我们从任何一个内部活动(即点击listview行时打开的活动)单击返回按钮,它必须导航到我的主listview,然后如果我们再次从listview中单击一次,应用程序必须关闭。

所以,如果我从我的listview两次按返回按钮,它将正确地退出应用程序。我的主要问题是,如果我从任何一个内部活动按两次返回按钮,我的应用程序不会关闭。我需要按三次返回按钮才能关闭应用程序。有人能帮助我吗?

这是退出应用程序的代码。我将这段代码添加到我的主listview类中。

private static final int TIME_INTERVAL = 3000; // # milliseconds, 两次返回按钮之间所需的时间间隔。
private long mBackPressed;
@Override
public void onBackPressed()
{
    if (mBackPressed + TIME_INTERVAL > System.currentTimeMillis()) 
    { 
        super.onBackPressed(); 
        return;
    }
    else { Toast.makeText(getBaseContext(), "Tap back button in order to exit", Toast.LENGTH_SHORT).show(); }
    mBackPressed = System.currentTimeMillis();
}
}

我的manifest.xml

 
    
    
        
            
            
        
    
    
        
    
    
        
    
    
        
    
    
        
    
    
        
    
    
        
    
    
        
    
    
        
    
    
        
    
    
        
    
    
        
    
    
        
    
    
        
    
    
    
    
        
    
    

0
0 Comments

点击Android返回按钮两次退出应用的问题出现的原因是,当用户在应用中点击返回按钮时,应用并不会立即退出,而是返回到上一个界面。为了实现在点击返回按钮两次后退出应用的功能,需要进行相关的处理。

解决方法是在Activity中添加一个标志位doubleBackToExitPressedOnce,默认为false。当用户点击返回按钮时,如果标志位为false,则将标志位设为true,并显示一个Toast提示用户再次点击返回按钮退出应用。然后使用Handler延迟2秒后,将标志位设为false。当用户再次点击返回按钮时,如果标志位为true,则调用super.onBackPressed()方法退出应用。

以下是示例代码:

private boolean doubleBackToExitPressedOnce;
public void onBackPressed() {
    if (doubleBackToExitPressedOnce) {
        super.onBackPressed();
        return;
    }
    this.doubleBackToExitPressedOnce = true;
    Toast.makeText(this, "再次点击返回按钮退出应用", Toast.LENGTH_SHORT).show();
    new Handler().postDelayed(new Runnable() {
        public void run() {
            doubleBackToExitPressedOnce = false;
        }
    }, 2000);
}

请注意,这段代码需要在每个Activity中添加。这样,当用户在任意一个Activity中点击返回按钮两次时,应用将退出。

但是,有用户提到这段代码只对ListView(主Activity)有效,对其他Activity无效。对于这个问题,可以尝试检查是否在其他Activity中正确地添加了这段代码。

0
0 Comments

点击两次Android返回按钮退出应用的问题是因为默认情况下,点击一次返回按钮会直接退出当前Activity,而不是退出整个应用。为了解决这个问题,可以在Activity中重写onBackPressed()方法,并添加一个标志位来判断是否可以退出应用。当第一次点击返回按钮时,将标志位设置为true,并显示一个Toast提示用户再次点击返回按钮退出应用。同时,使用Handler发送延时消息,在2秒内如果没有再次点击返回按钮,则将标志位设置为false,取消退出应用的操作。

具体的解决方法如下所示:

1. 在Activity中重写onBackPressed()方法。

2. 添加一个boolean类型的标志位canExit,并初始化为false。

3. 在重写的onBackPressed()方法中,判断canExit的值。如果为true,则调用父类的onBackPressed()方法,即退出当前Activity;如果为false,则将canExit设置为true,并显示一个Toast提示用户再次点击返回按钮退出应用。

4. 使用Handler发送延时消息,在2秒内如果没有再次点击返回按钮,则将canExit设置为false,取消退出应用的操作。

以上就是解决点击两次Android返回按钮退出应用的问题的方法。通过重写onBackPressed()方法和使用标志位canExit以及Handler实现了在两次点击返回按钮之间的延时操作,从而实现了点击两次返回按钮退出应用的功能。

0
0 Comments

点击两次Android返回按钮退出应用的问题是因为在onBackPressed()方法中,通过计数器doubleBackToExitPressed来判断用户是否点击了两次返回按钮。当用户第一次点击返回按钮时,计数器加一并显示一个Toast提示用户再次点击返回按钮退出应用。同时,使用Handler延迟2秒将计数器重置为1,以防止用户在一定时间内再次点击返回按钮。

解决方法是在onBackPressed()方法中添加逻辑判断,当用户点击返回按钮的次数达到2次时,调用finishAffinity()方法结束当前Activity及其所有子Activity,并调用System.exit(0)方法退出应用。

在以上代码中,使用了Toast类来显示提示信息,并使用Handler类来延迟执行重置计数器的操作。计数器doubleBackToExitPressed的初始值为1,表示用户还没有点击返回按钮。当用户点击一次返回按钮时,计数器加一,当用户再次点击返回按钮时,计数器的值为2,此时退出应用。

这段代码是一个可行的解决方案,可以确保用户需要点击两次返回按钮才能退出应用。

0