(1)
定义栈,写一个Exitactivity 类,利用单例模式管理Activity,在每个在
Activity 的onCreate()方法中调用Exitactivity.getInstance().addActivity(this)方法,在退
出时调用Exitactivity.getInstance().exit()方法,就可以完全退出应用程序了。
(3)其他的三个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.youkuaiyun.com/detail/liuzuyi200/7399541