Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> 手機影音1--SplashActivity,1--splashactivity

手機影音1--SplashActivity,1--splashactivity

編輯:關於android開發

手機影音1--SplashActivity,1--splashactivity


/**
 * 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();
	}
}

  

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved