編輯:關於android開發
/**
* 1.設置被啟動的Activity為單例模式
*/
public class SplashActivity extends Activity {
/**
* 是否已經啟動主頁面
*/
private boolean isStartMain = false;
private static final String TAG = SplashActivity.class.getSimpleName();
private Handler handler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
handler.postDelayed(new Runnable() {
@Override
public void run() {
//這個方法執行是在主線程
Log.e(TAG, "當前線程的名稱:" + Thread.currentThread().getName());
startMainActivity();
}
}, 3000);
}
/**
* 啟動主頁面
*/
private void startMainActivity() {
if(!isStartMain){
isStartMain = true;
Intent intent = new Intent(this,MainActivity.class);
startActivity(intent);
finish();//關閉當前頁面
}
}
@Override
protected void onDestroy() {
// isStartMain = true;
handler.removeCallbacksAndMessages(null);//把消息隊列裡面的所有回調和消息移除
super.onDestroy();
}
@Override
public boolean onTouchEvent(MotionEvent event) {
startMainActivity();
return super.onTouchEvent(event);
}
}
1.Handler在哪個線程new,Runnable就在哪個線程執行
2.有一個bug,啟動了多次Activity,如何解決?
方法①.設置為啟動的Activity只能是單例。
在功能清單文件android:launchMode="singleTask"
方法②.從源頭上控制,執行代碼只一次
private boolean isStartMain = false;
/**
* 跳轉到主頁面,並且把當前頁面關閉掉
*/
private void startMainActivity() {
if(!isStartMain){
isStartMain = true;
Intent intent = new Intent(this,MainActivity.class);
startActivity(intent);
//關閉當前頁面
finish();
}
}
android onCreate中獲取view寬高為0的多種解決方法
android onCreate中獲取view寬高為0的多種解決方法 這個問題大家肯定遇到過不止一次,其實很簡單,解決它也很容易,但是咱們追求的畢竟不是解決它,而是找
android不太常用的控件,
android不太常用的控件,AutoCompleteTextView:是一種與EditText類似的視圖(實際上他是EditText的子類),只不過它還在用戶輸入時自動
【Android】如何寫一個JsBridge
【Android】如何寫一個JsBridge JsBridge 簡介 Android JsBridge 就是用來在 Android app的原生 java 代碼與 j
Android——eclipse下運行android項目報錯 Conversion to Dalvik format failed with error 1解決,androiddalvik
Android——eclipse下運行android項目報錯 Conversion to Dalvik format failed with error 1解決,andr