详解Android完完全全退出应用程序
2012-09-14 16:35
260 查看
参考网友的代码,我这里总结了下,希望能够帮助到大家,也供我以后的使用。不多少了,直接上代码:
首先写一个基类,这个基类继承Activity
package com.jcxc.activity;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
/**
*模板Activity
*/
public class BasicActivity extends Activity {
//退出
private static final int ITEM = Menu.FIRST;
//存Activity
public static List<Activity> sAllActivitys = new ArrayList<Activity>();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.search_layout);
sAllActivitys.add(this);
}
@Override
public void onDestroy() {
super.onDestroy();
sAllActivitys.remove(this);
}
public static void finishAll() {
for(Activity activity : sAllActivitys) {
activity.finish();
}
sAllActivitys.clear();
}
public static void exit() {
finishAll();
// 这个主要是用来关闭进程的, 关把所有activity finish 的话,进程是不会关闭的
System.exit(0);
}
/**
* 完全退出应用程序
*/
public void exitApp() {
//退出前弹出提示框提示
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("提示");
builder.setMessage("您确定要退出程序吗?");
builder.setPositiveButton("确定",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
exit();
}
});
builder.setNegativeButton("取消",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
dialog.dismiss();
}
});
builder.show();
//退出前不提示
//exit();
}
//点击Menu时,系统调用当前Activity的onCreateOptionsMenu方法,并传一个实现了一个Menu接口的menu对象供你使用
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//this.getMenuInflater().inflate(R.menu.main_menu, menu);
/*
* add()方法的四个参数,依次是:
* 1、组别,如果不分组的话就写Menu.NONE,
* 2、Id,这个很重要,Android根据这个Id来确定不同的菜单
* 3、顺序,那个菜单现在在前面由这个参数的大小决定
* 4、文本,菜单的显示文本
*/
menu.add(0, ITEM, 0, "退出");
return true;
}
//菜单项被选择事件
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case ITEM:
exitApp();
break;
}
return false;
}
}
然后其他activity来继承这个基类就可以了。
首先写一个基类,这个基类继承Activity
package com.jcxc.activity;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
/**
*模板Activity
*/
public class BasicActivity extends Activity {
//退出
private static final int ITEM = Menu.FIRST;
//存Activity
public static List<Activity> sAllActivitys = new ArrayList<Activity>();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.search_layout);
sAllActivitys.add(this);
}
@Override
public void onDestroy() {
super.onDestroy();
sAllActivitys.remove(this);
}
public static void finishAll() {
for(Activity activity : sAllActivitys) {
activity.finish();
}
sAllActivitys.clear();
}
public static void exit() {
finishAll();
// 这个主要是用来关闭进程的, 关把所有activity finish 的话,进程是不会关闭的
System.exit(0);
}
/**
* 完全退出应用程序
*/
public void exitApp() {
//退出前弹出提示框提示
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("提示");
builder.setMessage("您确定要退出程序吗?");
builder.setPositiveButton("确定",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
exit();
}
});
builder.setNegativeButton("取消",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
dialog.dismiss();
}
});
builder.show();
//退出前不提示
//exit();
}
//点击Menu时,系统调用当前Activity的onCreateOptionsMenu方法,并传一个实现了一个Menu接口的menu对象供你使用
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//this.getMenuInflater().inflate(R.menu.main_menu, menu);
/*
* add()方法的四个参数,依次是:
* 1、组别,如果不分组的话就写Menu.NONE,
* 2、Id,这个很重要,Android根据这个Id来确定不同的菜单
* 3、顺序,那个菜单现在在前面由这个参数的大小决定
* 4、文本,菜单的显示文本
*/
menu.add(0, ITEM, 0, "退出");
return true;
}
//菜单项被选择事件
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case ITEM:
exitApp();
break;
}
return false;
}
}
然后其他activity来继承这个基类就可以了。
相关文章推荐
- android完全退出应用程序
- Android 怎么退出整个应用程序?
- Android彻底退出应用程序(转)
- Android退出启动了多个Activity的应用程序
- Android 按二次后退键退出应用程序
- Android再按一次返回键退出应用程序
- android应用程序签名详解
- 【Android基础】点击Back键退出应用程序
- 如何在真机上调试Android应用程序(图文详解)
- Android应用程序退出时
- Android应用程序完全退出
- android使用finish()和System.exit()退出应用程序的理解
- android退出应用程序
- Android 应用程序完全退出(不会运行在后台)
- Android退出应用程序弹出对话框(附代码)
- Android 怎么退出整个应用程序?
- 优雅退出 Android 应用程序的 6 种方式
- android应用程序完全退出探讨
- Android应用程序签名详解
- Android应用程序签名详解