网友通过本文主要向大家介绍了暴风影音手机安卓版,影音先锋手机版下载,影音先锋苹果手机版,影音先锋手机版,手机暴风影音等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
手机影音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();
}
}

