Android BaseActivity App框架设计BaseActivity封装

本文分享了Android开发中如何创建一个BaseActivity基类,用于更好地管理和复用Activity中的方法。BaseActivity继承FragmentActivity,并实现一些通用接口,如页面跳转、应用关闭、Logcat日志打印。此外,文章提到了Activity的栈堆管理,并表示会持续完善该BaseActivity,目标是打造一个强大的Android快速开发框架。

Android BaseActivity 分享

在Android开发中,为了更好的对栈堆中的Activity进行管理以及更有效的对程序中可复用的方法进行复用,我们通常会为程序写一个Activity的基类,这次我就分享一个Activity基类的基本写法。希望能够帮助到兄弟姐妹们。

在开发的过程中,Activity通常会使用到FragmentActivity而FragmentActivity是继承Activity的所以们新建一个Activity让他继承FragmentActivity。

 import android.os.Bundle;
 import android.support.v4.app.FragmentActivity;
 public class KxActivity extends FragmentActivity {
   
   
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
            }
         }

接下来,我们给他加上一些通用的方法,让你的代码结构更加清晰,简洁。
首先,写一个接口,让KxActivity进行实现,覆写里面的方法:

public interface Interface_KxActivity {
   
   

    /**
     * 初始化界面 (在这里进行layout设置)
     */
    void initRoot();

    /**
     * 初始化控件
     */
    void stupView();

    /**
     * 初始化数据
     */
    void stupData();

    /**
     * 点击事件回调方法
     * @param view 被点击的控件
     */
    void viewClick(View view);

    /**
     * 设置是否是碎片Activity
     * @param is
     */
    void isFragmentActivity(boolean is);
}

好了,那么我们再来写一个跳转页面以及关闭应用的接口:

public interface Show_KxActivity {
   
   
    /**
     * 关闭当前Activity跳转
     * @param activity 当前Activity
     * @param cls 要跳转的Activity
     */
    void finshTogo(Activity activity, Class<?> cls);

    /**
     * 关闭当前Activity跳转
     * @param activity 当前Activity
     * @param intent intent活动
     */
    void finshTogo(Activity activity, Intent intent);
    /**
     * 关闭当前Activity跳转
     * @param activity 当前Activity
     * @param cls 要跳转的Activity
     * @param bundle Bundle对象
     */
    void finshTogo(Activity activity, Class<?> cls, Bundle bundle);

    /**
     * 不关闭当前Activity跳转
     * @param activity 当前Activity
     * @param cls 要跳转的Activity
     */
    void keepTogo(Activity activity, Class<?> cls);
    /**
     * 不关闭当前Activity跳转
     * @param activity 当前Activity
     * @param intent intent活动
     */
    void keepTogo(Activity activity, Intent intent);
    /**
     * 不关闭当前Activity跳转
     * @param activity 当前Activity
     * @param cls 要跳转的Activity
     * @param bundle Bundle对象
     */
    void keepTogo(Activity activity, Class<?> cls, Bundle bundle);

    /**
     * 结果返回页面跳转
     * @param intent Intent对象
     * @param requestCode 访问代码
     */
    void forResultTogo(Intent intent,int requestCode);

    /**
     * 接收跳转页面的结果
     * @param requestCode 访问代码
     * @param resultCode 返回代码
     * @param intent Intent对象
     */
    void OnKxActivityResult(int requestCode, int resultCode, Intent intent);

    /**
     * 杀死整个程序
     */
    void finishApp();
}

这些都写好了之后我们还有个比较常用的,那就是logcat,这里我也把它写成一个接口,这里我们进行配置是否打印logcat等处理,这里我只写了个logcat,其他的以后慢慢完善:

public interface Configer_KxActivity {
   
   

    /**
     * 设置是否显示debug logcat
     * @param isDebug 是否显示debug数据
     */
    void setIsDebug(boolean isDebug);
}

ok,接下来我们再把Logcat封装一下,这里我借鉴了一位大神的封装,并进行了一些改动,毕竟好东西要大家分享嘛。。不过现在我没找到这个的链接了,如果有冒犯的地方还请见谅,一共三个类,我还是贴出来大家学习指正下:


import android.text.TextUtils;
import android.util.Log;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.Collection;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/**
 * Created by ouqikang on 15/11/16.
 */
public class Logger implements Printer{
   
   

    private static final int DEBUG = 1;
    private static final int ERROR = 2;
    private static final int VERBOSE = 3;
    private static final int ASSERT = 4;
    private static final int INFO = 5;
    private static final int WARN = 6;
    private static final int JSON = 7;
    private static final int OBJECT = 8;

    private static final String LINE_SEPARATOR = System.getProperty("line.separator");

    private static final char TOP_LEFT_CORNER = '╔';
    private static final char BOTTOM_LEFT_CORNER = '╚';
    private static final char MIDDLE_CORNER = '╟';
    private static final char HORIZONTAL_DOUBLE_LINE = '║';
    private static final String DOUBLE_DIVIDER = "════════════════════════════════════════════";
    private static final String SI
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值