手机影音1--SplashActivity

Posted 安卓笔记侠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了手机影音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--SplashActivity的主要内容,如果未能解决你的问题,请参考以下文章

手机影音第十六天,集成eventbus代替广播

手机影音第十天,控制屏幕上下滑动改变音量变化,监听物理键改变音量

手机影音第六天 自定义播放器页面的实现(按钮暂时未监听)

手机影音第十四天,本地音乐列表的展示与播放(利用视频播放的布局)

手机影音第十五天,利用service实现后台播放音乐,在通知栏显示当前音乐信息等

手机影音