Android 完全退出应用程序的解决方法_安卓软件开发教程-查字典教程网
Android 完全退出应用程序的解决方法
Android 完全退出应用程序的解决方法
发布时间:2016-12-28 来源:查字典编辑
摘要:有一种需要,我们在菜单项中点击退出应用程序,应用程序就退出,不需要回到MainActivity设计:有两个应用界面MainActivity和...

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

设计:

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

步骤:

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);

}

}

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新安卓软件开发学习
    热门安卓软件开发学习
    编程开发子分类