我是做web开发的,最近在学习android。
周末的时候想写个延迟进入主界面的功能,主要用到Handler和Runnable,代码如下:
package com.zx.app;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.Button;
public class StartScreenActivity extends Activity {
private final int SPLASH_DISPLAY_LENGHT = 3000; // 3秒启动界面延迟
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
btn = (Button) this.findViewById(R.id.enter);
//创建一个线程
final Runnable myRun = new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
Intent intent = new Intent(StartScreenActivity.this,
MainActivity.class);
startActivity(intent);
finish();
}
};
final Handler handler = new Handler();
//使用handler对象来定时启动线程运行
handler.postDelayed(myRun, SPLASH_DISPLAY_LENGHT);
//直接点击跳过 延迟加载进入主界面
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//移除handler延迟加载里面的线程,就不会存在执行两次的情况
handler.removeCallbacks(myRun);
Intent intent = new Intent(StartScreenActivity.this,
MainActivity.class);
startActivity(intent);
finish();
}
});
}
}
在写这个代码的时候遇到进入主界面后在跳回延迟加载页面的问题,然后来oschina来需求帮助,发布问题之后就很多前辈来不吝回答,感谢他们。