Android日志工具类 + Activity传值规范 + Activity退出管理

普通日志工具类

  • 开发阶段正常打印日志,项目上线屏蔽所有日志,防止信息泄漏

  • 修改LEVEL值,打印对应级别的日志

  • 项目上线时将LEVEL值置为NOTHING来屏蔽日志的打印

    /**
     * @author catface at 2015/11/14 - 9:47
     *
     * 日志工具类:
     * 1.修改LEVEL值,打印对应级别的日志
     * 2.项目上线时将LEVEL值置为NOTHING来屏蔽日志的打印
     */
    public class LogTool {
    
        public static final int VERBOSE = 1;
    
        public static final int DEBUG = 2;
    
        public static final int INFO = 3;
    
        public static final int WARN = 4;
    
        public static final int ERROR = 5;
    
        public static final int NOTHING = 6;
    
        public static final int LEVEL = VERBOSE;
    
        public static void v(String tag, String msg) {
            if (LEVEL <= VERBOSE) {
                Log.v(tag, msg);
            }
        }
    
        public static void d(String tag, String msg) {
            if (LEVEL <= DEBUG) {
                Log.d(tag, msg);
            }
        }
    
        public static void i(String tag, String msg) {
            if (LEVEL <= INFO) {
                Log.i(tag, msg);
            }
        }
    
        public static void w(String tag, String msg) {
            if (LEVEL <= WARN) {
                Log.w(tag, msg);
            }
        }
    
        public static void e(String tag, String msg) {
            if (LEVEL <= ERROR) {
                Log.e(tag, msg);
            }
        }
    }
    

知道当前所在 Activity

  • 在 BaseActivity 的 onCreate() 添加 Log,其他的继承之

    Log.d("BaseActivity", getClass().getSimpleName());
    

这里写图片描述


想传值到我的 Activity 不需问我

有时候别人想传值跳转到我的Activity需要问我要传什么–>拒绝回答

  • 在我的 SecondActivity 中暴露一个方法

    public static void intentData(Context ctx, String str1, String str2) {
    	Intent intent = new Intent(ctx, SecondActivity.class);
    	intent.putExtra("param1", str1);
    	intent.putExtra("param2", str2);
    	ctx.startActivity(intent);
    }
    
  • 别人跳我时只需这样

    SecondActivity.intentData(this, "s", "b");
    
  • 然后我就能拿到传过来的数据了

    Intent it = getIntent();
    final String str1 = it.getStringExtra("param1"); // 拿到 s
    final String str2 = it.getStringExtra("param2"); // 拿到 b
    

Activity 栈退出管理

  • Activity 控制类

    public class ActivityCtrl {
    
        public static List<Activity> activities = new ArrayList<>();
    
    	// 添加打开的Activity至管理集合中
        public static void addActivity(Activity activity) {
            activities.add(activity);
        }
    
    	// 当Activity销毁,从集合中删除
        public static void removeActivity(Activity activity) {
            activities.remove(activity);
        }
    
    	// 在最后需要退出的地方直接退出
        public static void finishAll() {
            for (Activity activity : activities) {
                if (!activity.isFinishing()) {
                    activity.finish();
                }
            }
            activities.clear();
        }
    }
    
  • BaseActivity 中使用控制类

    public class BaseActivity extends Activity {
    
        @Override protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            Log.d("BaseActivity", getClass().getSimpleName());
            ActivityCtrl.addActivity(this); // 新开启就添加
        }
    
        @Override protected void onDestroy() {
            super.onDestroy();
            ActivityCtrl.removeActivity(this); // 销毁了便删除
        }
    }
    
  • 在需要退出的地方

    @Override public void onBackPressed() {
        super.onBackPressed();
        ActivityCtrl.finishAll(); // 直接退出
    }
    
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值