編輯:關於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不太常用的控件,AutoCompleteTextView:是一種與EditText類似的視圖(實際上他是EditText的子類),只不過它還在用戶輸入時自動
【Android】如何寫一個JsBridge JsBridge 簡介 Android JsBridge 就是用來在 Android app的原生 java 代碼與 j
Android——eclipse下運行android項目報錯 Conversion to Dalvik format failed with error 1解決,andr