提高安卓APP开发效率、管理代码的架子(一):BaseActivity&BaseApplication

来源:互联网 发布:dwg是什么软件 编辑:程序博客网 时间:2024/05/01 13:33

BaseActivity

package com.appstore;import android.os.Bundle;import android.support.v4.app.FragmentActivity;import java.util.LinkedList;import java.util.List;/** * 抽取BaseActivity   管理所有activity 方便退出 * @author itcast * */public class BaseActivity extends FragmentActivity {    // 管理运行的所有的activity    public final static List<BaseActivity> mActivities = new LinkedList<BaseActivity>();    public static BaseActivity activity;//  private KillAllReceiver receiver;//  private class KillAllReceiver extends BroadcastReceiver{////      @Override//      public void onReceive(Context context, Intent intent) {//          finish();//      }//  }    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);//      receiver=new KillAllReceiver();//      IntentFilter filter=new IntentFilter("com.app.killall");//      registerReceiver(receiver, filter);        synchronized (mActivities) {//管理Activity同步            mActivities.add(this);        }        init();//其他初始化        initView();//视图控件初始化        initActionBar();//actionbar初始化    }    @Override    protected void onResume() {        super.onResume();        activity = this;    }    @Override    protected void onPause() {        super.onPause();        activity = null;    }    @Override    protected void onDestroy() {        super.onDestroy();        synchronized (mActivities) {            mActivities.remove(this);        }//      if(receiver!=null){//          unregisterReceiver(receiver);//          receiver=null;//      }    }    public void killAll() {        // 复制了一份mActivities 集合        List<BaseActivity> copy;        synchronized (mActivities) {            copy = new LinkedList<BaseActivity>(mActivities);        }        for (BaseActivity activity : copy) {            activity.finish();        }        // 杀死当前的进程 android.os.Process.killProcess(android.os.Process.myPid());    }    protected void initActionBar() {    }    protected void initView() {    }    protected void init() {    }}

BaseApplicaion

import android.app.Application;import android.content.Context;import android.os.Handler;/** * Created by stephen on 2016/10/30. */public class BaseApplication extends Application {    private static BaseApplication application;    private static int mainTid;    private static Handler handler;    @Override//  在主线程运行的    public void onCreate() {        super.onCreate();        application=this;        mainTid = android.os.Process.myTid();        handler=new Handler();    }    public static Context getApplication() {        return application;    }    public static int getMainTid() {        return mainTid;    }    public static Handler getHandler() {        return handler;    }}
0 0