当应用不再使用时,通常需要关闭应用,可以使用以下三种方法关闭android应用:
第一种方法:首先获取当前进程的id,然后杀死该进程。 (建议使用)
android.os.Process.killProcess(android.os.Process.myPid())
不能把应用程序完全杀死,也不会把当前应用程序的activity栈清空
第二种方法:终止当前正在运行的Java虚拟机,导致程序终止
System.exit(0);
不会把自己的应用程序杀死
第三种方法:强制关闭与该包有关联的一切执行
ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
manager.restartPackage(getPackageName()); 只能杀死别的application 不能杀死自己

<uses-permission android:name="android.permission.RESTART_PACKAGES" />

如果想直接退出程序可以创建出来整个应用程序的全局的实例

创建类App.java:

package cn.itcast.lunch;import java.util.ArrayList;import android.app.Activity;import android.app.Application;public class App extends Application {// 创建出来整个应用程序的全局的实例ArrayList<Activity> activities;@Overridepublic void onCreate() {// TODO 自动生成的方法存根activities = new ArrayList<Activity>();super.onCreate();}}
在每个activity中重写onCreate()方法和onDestroy()方法:

public void onCreate(Bundle savedInstanceState) {App app = (App) getApplication();app.activities.add(this);super.onCreate(savedInstanceState);setContentView(R.layout.main);}@Overrideprotected void onDestroy() {App app = (App) getApplication();app.activities.remove(this);super.onDestroy();}
退出程序代码:

App app = (App) getApplication();for (Activity a : app.activities) {a.finish();}

下面说的是菜单部分内容:

在资源文件夹下新建menu文件夹,新建menu.xml文件:

<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android" >    <item        android:id="@+id/close_all"        android:icon="@drawable/ic_launcher"        android:title="完全退出"/>    <item        android:id="@+id/close_this"        android:icon="@drawable/ic_launcher"        android:title="退出当前"/></menu>
应用部分代码:

package cn.itcast.lunch;import android.app.Activity;import android.app.ActivityManager;import android.content.Context;import android.content.Intent;import android.os.Bundle;import android.view.Menu;import android.view.MenuInflater;import android.view.MenuItem;import android.view.View;public class Demo1Activity extends Activity {/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {App app = (App) getApplication();app.activities.add(this);super.onCreate(savedInstanceState);setContentView(R.layout.main);}@Overrideprotected void onDestroy() {App app = (App) getApplication();app.activities.remove(this);super.onDestroy();}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// TODO 自动生成的方法存根MenuInflater inflater = getMenuInflater();inflater.inflate(R.menu.menu, menu);return super.onCreateOptionsMenu(menu);}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle item selectionswitch (item.getItemId()) {case R.id.close_all://ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);// 只能杀死别的application 不能杀死自己// manager.restartPackage(getPackageName());App app = (App) getApplication();for (Activity a : app.activities) {a.finish();}return true;case R.id.close_this:finish();return true;default:return super.onOptionsItemSelected(item);}}public void startDemo1(View view) {Intent intent = new Intent(this, Demo1Activity.class);startActivity(intent);}public void startDemo2(View view) {Intent intent = new Intent(this, Demo2Activity.class);startActivity(intent);}}
截图:


更多相关文章

  1. Android(安卓)ListView存在多个item样式的处理方法
  2. Android中关于Volley的使用(三)认识Volley的架构
  3. android编译源码+在源码中build工程方法(紧支持jdk1.5)
  4. Android学习整理- 9- 实时更新UI-Handler
  5. 《Android(安卓)Studio实战 快速、高效地构建Android应用》--二
  6. Android(安卓)代码风格规范
  7. android wifi之 AsyncChannel类消息通道
  8. 如何在真机上调试Android应用程序(图文详解)(zz)
  9. android使用豆瓣API出现500错误及解决方法

随机推荐

  1. Android自学笔记(Android(安卓)x86模拟器I
  2. Android(安卓)数据绑定视图 dataBinding
  3. android camera(一):camera模组CMM介绍
  4. Android(安卓)控件之Gallery图片集
  5. Android(安卓)RIL总体架构介绍
  6. Android(安卓)启动过程(2)
  7. 自定义带倒影和偏转的超炫Gallery
  8. 使用Android(安卓)Instrument 自动测试 W
  9. Android(安卓)中数据库查询方法 query()
  10. ListView美化