(1) 定义栈,写一个Exitactivity 类,利用单例模式管理Activity,在每个在
Activity 的onCreate()方法中调用Exitactivity.getInstance().addActivity(this)方法,在退
出时调用Exitactivity.getInstance().exit()方法,就可以完全退出应用程序了。

(2)Exitactivity

public class Exitactivity extends Application {private List<Activity> activityList=new LinkedList<Activity>(); private static Exitactivity instance; private Exitactivity() {  } //单例模式中获取唯一的ExitApplication 实例 public static Exitactivity getInstance() {  if(null == instance)   {     instance = new Exitactivity();   }      return instance; } //添加Activity 到容器中 public void addActivity(Activity activity) { activityList.add(activity); } //遍历所有Activity 并finish public void exit() { for(Activity activity:activityList)  {    activity.finish();  }   System.exit(0); }}

(3)其他的三个activity

1)activitymian的实现

package com.liuzuyi.exit;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;public class MainActivity extends Activity {private Button next;private Button exit; int i = 0;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);next=(Button)findViewById(R.id.button2);exit=(Button)findViewById(R.id.button1);next.setOnClickListener(l);exit.setOnClickListener(ll); Exitactivity.getInstance().addActivity(this);  } OnClickListener l = new OnClickListener() {public void onClick(View v) { Intent intent=new Intent(MainActivity.this,TwoActivity.class); startActivity(intent);}};OnClickListener ll = new OnClickListener() {@Overridepublic void onClick(View v) {if( i == 0){  Toast.makeText(MainActivity.this, "程序将在MainActivity退出,请再次点击", Toast.LENGTH_LONG).show();  i =1;}else{  Exitactivity.getInstance().exit();}}};  }

2)TwoActivity的实现

package com.liuzuyi.exit;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;public class TwoActivity extends Activity {private Button next;private Button exit; int i = 0;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_two);next=(Button)findViewById(R.id.button2);exit=(Button)findViewById(R.id.button1);next.setOnClickListener(l);exit.setOnClickListener(ll); Exitactivity.getInstance().addActivity(this);}OnClickListener l = new OnClickListener() {public void onClick(View v) { Intent intent=new Intent(TwoActivity.this,ThreeActivity.class); startActivity(intent);}};OnClickListener ll = new OnClickListener() {@Overridepublic void onClick(View v) {if( i == 0 ) {Toast.makeText(TwoActivity.this, "程序将在TwoActivity退出,请再次点击", Toast.LENGTH_LONG).show();    i =1; }elseExitactivity.getInstance().exit();}}; }

3)ThreeActivity的实现

package com.liuzuyi.exit;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;public class ThreeActivity extends Activity {private Button next;private Button exit;int i =0;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_three);next=(Button)findViewById(R.id.button2);exit=(Button)findViewById(R.id.button1);next.setOnClickListener(l);exit.setOnClickListener(ll); Exitactivity.getInstance().addActivity(this);}   OnClickListener l = new OnClickListener() {public void onClick(View v) { Intent intent=new Intent(ThreeActivity.this,MainActivity.class); startActivity(intent);}};OnClickListener ll = new OnClickListener() {@Overridepublic void onClick(View v) {if( i   == 0){     i =1;Toast.makeText(ThreeActivity.this, "程序将在ThreeActivity退出,请再次点击", Toast.LENGTH_LONG).show();}elseExitactivity.getInstance().exit();}}; }


可以在这里下载源码:

http://download.csdn.net/detail/liuzuyi200/7399541


更多相关文章

  1. unity3d发布Android程序
  2. Android错误提示:IMGSRV::0: gralloc_module_unmap: find buffer
  3. Android中MAT、GIMP查看内存占用
  4. java.net.SocketException: socket failed: EPERM (Operation no
  5. Android系统架构介绍
  6. Android(安卓)View的事件分发机制
  7. Android(安卓)中文api (81)——InputMethod [输入法]
  8. Android应用程序Click事件与Touch事件处理
  9. android之应用程序启动第三方应用

随机推荐

  1. Failed to install the following Androi
  2. 2019年8月
  3. android mvvm databinding在dialog中的使
  4. android之AnologClock 和 DigitalClock
  5. Android(安卓)自定义进度条
  6. Android(安卓)密度转换 java文件
  7. Android之获取、设置EditText的文本...
  8. ANDROID NDK文档系列--(二)Installation Gu
  9. 手动操作Android数据库
  10. Android(安卓)蓝牙自动配对连接