手机
当前位置:查字典教程网 >编程开发 >安卓软件开发 >Android 完全退出应用程序的解决方法
Android 完全退出应用程序的解决方法
摘要:有一种需要,我们在菜单项中点击退出应用程序,应用程序就退出,不需要回到MainActivity设计:有两个应用界面MainActivity和...

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

设计:

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

有两个应用界面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);

}

}

【Android 完全退出应用程序的解决方法】相关文章:

Android从服务器端获取数据的几种方法

Android 退出程序的若干方法总结

Android读取对应的键值

android开发中常用的Eclipse快捷键详细整理

android为按钮添加事件的三种方法

Android按键添加和处理的三个解决

Android应用开发中对Bitmap的内存优化

Android 图片特效处理的方法实例

android中圆角图像生成方法

Android开发 旋转屏幕导致Activity重建解决方法

精品推荐
分类导航