2014-10-19 82 views
0

我正在製作一個需要可運行的Android應用程序。我正在從可運行程序開始一項新的活動。新的活動出現並正常工作。問題是,當呼叫開始活動時,它非常緩慢。當我希望它是瞬時的時候,需要5秒鐘才能開始活動。Android-在Handler/runnable中開始新的活動非常慢

Boolean handlerrun=true; 
Intent intent= new Intent(this,newactivity.class); 
int somevalue=0; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
      setContentView(R.layout.gameactivity); 


handler=new Handler(); 

final Runnable r = new Runnable() 
{ 

    public void run() 
    { 
if(handlerrun){somevalue++;} 

if(somevalue>500){ 
handlerrun=false; 
startActivity(intent); 
finish(); 
     } 



     handler.postDelayed(this, 1);} 


} 
}; 

handler.postDelayed(r, 1); 

} 

活動開始時someValue中是大於500要增加someValue中的值停止處理程序中,我使用了一個布爾handlerrun,只運行處理程序時它是真實的。當somevalue大於500時,handlerrun = false,所以處理程序不會增加值。我嘗試使用handler.removeCallbacksandMessages()方法,但它沒有奏效。 Logcat不會給我任何錯誤。任何幫助,將不勝感激。

回答

1

你可以嘗試這樣的事:

@Override 
protected void onResume() { 
    super.onResume(); 

    if(done){ 
     return; 
    } 
    done = true; 
    final Handler handler = new Handler(); 
    handler.postDelayed(new Runnable() { 

     @Override 
     public void run() { 
      startActivity(new Intent(getApplicationContext(), YourActivity.class)); 
      finish(); 
      overridePendingTransition(0, 0); 
     } 
    }, 5000); 
} 

,將開始YourActivity 5秒後約。

希望它有幫助。