问题?Activity工具基类,做Back退出事件处理,android随时可以退出程序事件
点击退出键,销毁程序,销毁所有的活动。退出应用程序的实现:可以自己写个方法,例如:
网上有好几种写法:比如 /*finish();
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(0);*/
网上查了很多方法,最常用的就这两个方法了,效果都只能是退出当前活动回到上一个活动,而且退出之前还会黑屏一下,极为不爽,又达不到目的。所以还是用最开始的方法来做这个功能,写一个活动栈,退出的时候将全部活动都移出就行了,具体代码已经总结好了
ActivityController为集中Activity处理类,就是将我们在工程的建立的所有Activity类全部加进来(通过addActivity方法),当需要移除活动的时候调用remove方法即可,而当我们需要退出程序的时候,直接调用finishAll方法,移除所有的活动类,不就可以退出程序了。简便又好用,代码还不冗余。
package com.example.ldp.com.controller;/**
* Created by Administrator on 2017/3/27.
*/
import android.app.Activity;
import java.util.ArrayList;
import java.util.List;
/**
* Description :ActivityController为 活动集中管理类
* Author:ldp
* Data:2017/3/27
*/
public class ActivityController {
public static List<Activity> activities = new ArrayList<>();
/*将活动类加入集中管理器中*/
public static void addActivity(Activity activity){
activities.add(activity);
}
/*将活动类从集中管理器中移除*/
public static void removeActivity(Activity activity){
activities.remove(activity);
}
/*清除所有活动*/
public static void finishAll(){
for(Activity activity:activities){
if(!activity.isFinishing()){
activity.finish();
}
}
}
}
这个类就是集成Activity父类方法的基类,然后在所有的活动中继承这个基类,这样就简洁继承了Activity类,不影响活动类相关的使用。
package com.example.ldp.com.controller;/**
* Created by Administrator on 2017/3/27.
*/
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
/**
* Description :BaseActivity为 活动基础类
* Author:ldp
* Data:2017/3/27
*/
public class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.i("LDP",getClass().getSimpleName());
ActivityController.addActivity(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
ActivityController.removeActivity(this);
}
}
package com.example.ldp.com.activity;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
import android.widget.Toast;
import com.example.ldp.com.controller.ActivityController;
import com.example.ldp.com.controller.BaseActivity;
import com.example.ldp.com.forestteaching.R;
public class ManagerActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_student);
//退出调用
//ActivityController.finishAll();
}
}
作者:Mr_li13 发表于2017/3/27 17:49:08 原文链接
阅读:50 评论:0 查看评论