普通日志工具类
-
开发阶段正常打印日志,项目上线屏蔽所有日志,防止信息泄漏
-
修改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(); // 直接退出 }