灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2185回复:0

Android应用程序退出实例

楼主#
更多 发布于:2012-09-06 13:49


1、Application当中代码:
[java] public class WeiboApplication extends Application {

    // 程序退出标记  
    private List<Activity> activities = new ArrayList<Activity>();

    public void addActivity(Activity activity) {
        activities.add(activity);
    }

    @Override
    public void onTerminate() {
        super.onTerminate();

        for (Activity activity : activities) {
            activity.finish();
        }

        Android.os.Process.killProcess(Android.os.Process.myPid());
    }

}
public class WeiboApplication extends Application {
// 程序退出标记
private List<Activity> activities = new ArrayList<Activity>();
public void addActivity(Activity activity) {
  activities.add(activity);
}
@Override
public void onTerminate() {
  super.onTerminate();
  for (Activity activity : activities) {
   activity.finish();
  }
  Android.os.Process.killProcess(Android.os.Process.myPid());
}
}
2、每个Activity在oncreate当中的代码:
[java]@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.main_activity);
        
        WeiboApplication app = (WeiboApplication) getApplication();
        app.addActivity(this);
    }
@Override
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  this.requestWindowFeature(Window.FEATURE_NO_TITLE);
  setContentView(R.layout.main_activity);
  
  WeiboApplication app = (WeiboApplication) getApplication();
  app.addActivity(this);
}
3、在TabActivity当中设置退出代码(类似的可以在普通Activity当中设置)
[java] @Override
    public boolean dispatchKeyEvent(KeyEvent event) {
        if (event.getAction() == KeyEvent.ACTION_DOWN
                ;; event.getKeyCode() == KeyEvent.KEYCODE_BACK) {

            // 创建对话框 www.atcpu.com  
            LayoutInflater li = LayoutInflater.from(this);
            View exitV = li.inflate(R.layout.exitdialog, null);
            AlertDialog.Builder ab = new AlertDialog.Builder(this);
            ab.setView(exitV);// 设定对话框显示的View对象  
            ab.setPositiveButton(R.string.menu_logout_label, new OnClickListener() {
                public void onClick(Dialoginterface arg0, int arg1) {
                    // TODO Auto-generated method stub  
                    WeiboApplication app = (WeiboApplication) getApplication();
                    app.onTerminate();
                }
            });
            ab.setNegativeButton(R.string.cancel_button_title, null);
            // 显示对话框  
            ab.show();
            return false;
        }
        return false;
    };


喜欢0 评分0
游客

返回顶部