您的位置:首页 > 移动开发 > Android开发

解决android线程(thread)中页面跳转动画无效

2014-05-07 10:06 501 查看
android中如果要在线程中实现页面跳转,其动画效果overridePendingTransition会失效。而我们有时候(比如启动页面)又必须用到,所以

参考网上方法,利用Thread结合Handler方式最终得到解决,代码如下:

参考网页:1./article/8532581.html

2.http://www.2cto.com/kf/201305/215230.html

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;

@SuppressLint("HandlerLeak")
public class SplashActivity extends Activity {
private Thread msThread;
private static final int JUMP_TO_MAIN = 1000;
private Handler mHandler;
private final SplashActivity splash = this;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out);
initData();
msThread.start();
}
private void initData() {
// TODO Auto-generated method stub

mHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
if(msg.what == JUMP_TO_MAIN){
Intent intent;
intent = new Intent(splash, MainFragmentActivity.class);
startActivity(intent);
overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out);
finish();
}
}

};
msThread = new Thread() {
@Override
public void run() {
try {
synchronized (this) {
wait(3000);
}
} catch (InterruptedException ex) {
ex.printStackTrace();
}
Message msg = new Message();
msg.what = JUMP_TO_MAIN;
mHandler.sendMessage(msg);
}
};
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: