Android的开发技巧

版权声明:转载请说明去处,文章仅供学习参考 https://blog.csdn.net/qq_38487155/article/details/81317955

一、自定义日志工具:当我们在编写App时需要大量使用日志工具,可是当App发布后不需要日志工具时总不能一条一条去改动,所以我们应该使用自定义日志工具来操作日志打印

import android.util.Log;

//自定义日志工具LogUtil
/*
 * 通过设置LEVEL可以控制日志打印,当LEVEL默认设置为VERBOSE打印所有日志,当LEVEL设置为NOTHING时
 * 屏蔽所有日志
 */
public class LogUtil {
	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);
		}
	}
}

二、Intent里传输自定义类方法

/*
 * Intent传输对象方法:
 * 1、让类继承Serializable接口,设置类里所有变量的get和set方法
 * 2、实例化类对象,通过set方法设置好对象里数据,与其它数据一样用键值对方式放入Intent
 * 3、取出用:(类名)getIntent().getSerializableExtra(键名);
 */

三、全局范围获取上下文情境对象(Context):添加以下一个类

//通过MyApplication.getContext()获得一个全局都能获取到的Context对象,可以在Toast等地方使用
public class MyApplication extends Application{
	private static Context context;
	public void onCreate() {
		context=getApplicationContext();
	}
	public static Context getContext() {
		return context;
	}
}

四、随时随地退出活动

/*
 * 小技巧Two:瞬间退出程序
 * 1、创建活动管理类ActivityCollector
 * 2、写一个基类BaseActivity,当活动onCreate()时添加至ActivityCollector里,
 *       onDestroy()时删除该活动
 * 3、让所有类继承于BaseActivity
 */

public class BaseActivity extends Activity{
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		//getClass():获得当前类
		//getSimpleName():获得当前活动名
		Log.d("BaseActivity",getClass().getSimpleName());
		ActivityCollector.addActivity(this);
	}
	protected void onDestroy() {
		super.onDestroy();
		ActivityCollector.removeActivity(this);
	}
}

//随时退出所有活动只需要调用ActivityCollector的finishAll方法

public class ActivityCollector {
	public static List<Activity> activities=new ArrayList<Activity>();
	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();
			}
		}
	}
}

猜你喜欢

转载自blog.csdn.net/qq_38487155/article/details/81317955