1、類的單例化
public class A {
private A() {
}
public static class HOLDER {
public static A instance = new A();
}
public static A getInstance() {
return HOLDER.instance;
}
}
不用再考慮其他什么線程安全是一次同步還是兩次同步.
2、點(diǎn)擊兩次退出應(yīng)用
public class MainActivity extends Activity {
private Toast toast;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
toast = Toast.makeText(getApplicationContext(), "確定退出?", 0);
}
public void onBackPressed() {
quitToast();
}
private void quitToast() {
if(null == toast.getView().getParent()){
toast.show();
} else {
System.exit(0);
}
}
}
3、防止Button被頻繁點(diǎn)擊,同一頁面多個(gè)Button互斥
public abstract class OnClickEvent implements View.OnClickListener {
public static long lastTime;
public abstract void singleClick(View v);
@Override
public void onClick(View v) {
if (onDoubClick()) {
return;
}
singleClick(v);
}
public boolean onDoubClick() {
boolean flag = false;
long time = System.currentTimeMillis() - lastTime;
if (time < 500) {
flag = true;
}
lastTime = System.currentTimeMillis();
return flag;
}
}
4、android:clipToPadding
android:clipToPadding="false"
android:paddingTop="30dp"
5、如何判斷應(yīng)用被強(qiáng)殺
在Applicatio中定義一個(gè)static常量,賦值為-1,在歡迎界面改為0,如果被強(qiáng)殺,application重新初始化,在父類Activity判斷該常量的值.
6、應(yīng)用被強(qiáng)殺如何解決
如果在每一個(gè)Activity的onCreate里判斷是否被強(qiáng)殺,冗余了,封裝到Activity的父類中,如果被強(qiáng)殺,跳轉(zhuǎn)回主界面,如果沒有被強(qiáng)殺,執(zhí)行Activity的初始化操作,給主界面?zhèn)鬟fintent參數(shù),主界面會調(diào)用onNewIntent方法,在onNewIntent跳轉(zhuǎn)到歡迎頁面,重新來一遍流程.
未完待續(xù)...