Android 完全退出应用程序的解决方法

爱她就不要她哭

爱她就不要她哭

2016-02-19 10:09

今天图老师小编要向大家分享个Android 完全退出应用程序的解决方法教程,过程简单易学,相信聪明的你一定能轻松get!

有一种需要,我们在菜单项中点击退出应用程序,应用程序就退出,不需要回到MainActivity

设计:


有两个应用界面MainActivity和BActivity,以及用于程序的通用类ExitUtil

步骤:

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

1、添加一个类,名为ExitUtil
代码如下:

public class ExitUtil {
 public static final int EXIT_APPLICATION = 0x0001;
 private Context mContext;
 public ExitUtil(Context context) {
  mContext = context;
 }
 // 完全退出应用程序
 public void exit() {
  Intent intent = new Intent(mContext, MainActivity.class);
  // 设置FLAG!!!表示从当前Activity跳转到intent构造方法中添加的类,并且把两个Activity之间的Activity给finish掉!
  intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
  // 发出退出应用程序指示
  intent.putExtra("flag", EXIT_APPLICATION);
  mContext.startActivity(intent);
 }
}

2、添加BActivity,覆写其中的方法如下,并且需要在清单文件中对此Activity进行配置
代码如下:

public class BActivity extends Activity {
 private static final int MENU_EXITAPPLICATION = Menu.FIRST;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  TextView tv = new TextView(this);
  tv.setText("wecolme!");
  setContentView(tv);
 }
 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  menu.add(0, MENU_EXITAPPLICATION, 0, "退出程序");
  return super.onCreateOptionsMenu(menu);
 }
 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
  // 其它Activity调用程序就通过此方法
  if (item.getItemId() == MENU_EXITAPPLICATION) {
   ExitUtil eu = new ExitUtil(this);
   eu.exit();
  }
  return super.onOptionsItemSelected(item);
 }
}

3、修改MainActivity方法
代码如下:

public class MainActivity extends Activity {
 Button btn = null;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  btn = (Button) findViewById(R.id.btn);
  btn.setOnClickListener(new OnClickListener() {// 点击进入BActivity
   @Override
   public void onClick(View v) {
    Intent intent = new Intent(getApplicationContext(), BActivity.class);
    startActivity(intent);
   }
  });
 }
 // 接受退出程序的指令
 @Override
 protected void onStart() {
  int flag = getIntent().getIntExtra("flag", 0);// 第一次,进入应用时获取得到的flag为默认的值0!
  if (flag == ExitUtil.EXIT_APPLICATION) {
   finish();
  }
  Log.i("TAG", "Start");
  super.onStart();
 }
 // 当Activity是单例模式的时候,两次启动该Activity就不会调用onCreate-onStart这些方法了
 @Override
 protected void onNewIntent(Intent intent) {
  int flag = getIntent().getIntExtra("flag", 0);
  if (flag == ExitUtil.EXIT_APPLICATION) {
   finish();
  }
  Log.i("TAG", "NewIntent");
  super.onNewIntent(intent);
 }
}

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)
展开更多 50%)
分享

猜你喜欢

Android 完全退出应用程序的解决方法

编程语言 网络编程
Android 完全退出应用程序的解决方法

svchost.exe应用程序错误的解决方法

电脑入门
svchost.exe应用程序错误的解决方法

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

spoolsv.exe应用程序错误的解决方法

电脑入门
spoolsv.exe应用程序错误的解决方法

qqlogin.exe应用程序错误的解决方法

电脑入门
qqlogin.exe应用程序错误的解决方法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

iexplore.exe应用程序错误解决方法

浏览器
iexplore.exe应用程序错误解决方法

不是有效Win32应用程序的解决方法

电脑入门
不是有效Win32应用程序的解决方法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

基于Android 监听ContentProvider 中数据变化的相关介绍

基于Android 监听ContentProvider 中数据变化的相关介绍

硬盘数据可以保存多长时间?

硬盘数据可以保存多长时间?
下拉加载更多内容 ↓