Android 退出应用程序关闭
Posted
技术标签:
【中文标题】Android 退出应用程序关闭【英文标题】:Android exit app on close 【发布时间】:2014-05-17 10:28:06 【问题描述】:嗨,在我的 android 应用程序中,每当我按下后退按钮时,我都会在此活动之后包含一个启动屏幕,它会转到 MainActivity 的前一页。但是如果用户按下 MainActivity 的后退按钮,我需要退出应用程序。但现在主要活动不是开始活动,启动屏幕是活动。所以我检查了一些方法,我看到了
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
这将清除以前的活动.. 但是在 MainActivty 为什么我需要一个意图.. 我给了
finish();
在每个活动的每个意图中,因此活动将被清除。但这会影响我的应用程序的整个结构.. 每当用户按下后退按钮时,应用程序就会进入主页。所以任何人都提出了一个解决方案.. 这样如果用户按下后退按钮,我就可以直接从 MainActivity 退出。
这是我的 mainActivity 后台代码
@Override
public void onBackPressed()
// TODO Auto-generated method stub
super.onBackPressed();
finish();
还有我的启动画面
WebView wv;
// Splash screen timer
private static int SPLASH_TIME_OUT = 4000;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_flash);
wv = (WebView) findViewById (R.id.webView1);
wv.setHorizontalScrollBarEnabled(false);
wv.loadUrl("file:///android_asset/Finally-320.gif");
new Handler().postDelayed(new Runnable()
/*
* Showing splash screen with a timer. This will be useful when you
* want to show case your app logo / company
*/
@Override
public void run()
// This method will be executed once the timer is over
// Start app main activity
Intent i = new Intent(SplashScreen.this, MainActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
// close this activity
finish();
, SPLASH_TIME_OUT);
@Override
public void onBackPressed()
// TODO Auto-generated method stub
super.onBackPressed();
finish();
【问题讨论】:
使用intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
从SplashScreen
调用MainActivity
,不要在其他活动上调用finish
方法,如果你想调用finish
,你需要处理所有onBackPress
但是在启动画面中添加有什么用..
当你在启动画面中使用它时,当主Activity启动堆栈的Activity是Clear时,所以如果你回击键应用程序将退出并且SplashActivity不会在你的应用程序中再次运行。
我需要把finish();在主要活动中
不,你不需要。请先尝试。
【参考方案1】:
您的查询:
但是如果用户从 MainActivity 按下返回按钮,我需要退出应用程序。
为此,您需要在 MainActivity 中编写此代码
@Override
public void onBackPressed()
finish();
更新:
将此行从应用程序中退出:
moveTaskBack(true);
【讨论】:
但我的第一个活动不是主活动,它是一个闪屏 试试这个:moveTaskBack(true);
【参考方案2】:
像这样在onBackPressed()
中使用System.exit(0)
:
@Override
public void onBackPressed()
// TODO Auto-generated method stub
super.onBackPressed();
System.exit(0);
【讨论】:
以上是关于Android 退出应用程序关闭的主要内容,如果未能解决你的问题,请参考以下文章
Android Studio - 如何(关闭,退出,退出,杀死等)应用程序[重复]
android studio项目启动画面无法正常关闭,应用程序运行完美但退出应用程序启动画面显示后,为啥[关闭]
当我关闭蓝牙服务器套接字或蓝牙套接字时,Android 应用程序意外退出