android 루틴 (thread) 에서 페이지 점프 애니메이션이 잘못되었습니다.

android에서 루틴에서 페이지 이동을 실현하려면 애니메이션 효과overridePendingTransition이 효력을 상실합니다.우리는 때때로 (예를 들어 시작 페이지) 또 사용해야 하기 때문에
온라인 방법을 참조하여 Thread와 Handler 방식을 결합하여 최종적으로 해결되었습니다. 코드는 다음과 같습니다.
참조 페이지: 1.http://blog.csdn.net/woshicaixianfeng/article/details/6826263
    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); 
			}
		};
	}
	
}

좋은 웹페이지 즐겨찾기