(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() { @Override public 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() { @Override public void onClick(View v) { if( i == 0 ) { Toast.makeText(TwoActivity.this, "程序将在TwoActivity退出,请再次点击", Toast.LENGTH_LONG).show(); i =1; } else Exitactivity.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() { @Override public void onClick(View v) { if( i == 0) { i =1; Toast.makeText(ThreeActivity.this, "程序将在ThreeActivity退出,请再次点击", Toast.LENGTH_LONG).show(); } else Exitactivity.getInstance().exit(); } }; }
可以在这里下载源码:
http://download.csdn.net/detail/liuzuyi200/7399541