2016-05-15 80 views
0

我想使用AsyncTask來創建啓動畫面。具體來說,在doInBackground()方法中,我使用靜態方法Thread.sleep()並在它創建後將應用程序重定向到其他活動。我沒有收到任何錯誤,但該應用沒有改變活動。我的代碼是:使用AsyncTask進行睡眠

/***This class redirects the user to the 'MainActivity'. ***/ 
class RedirectToMainActivityTask extends AsyncTask<Void, Void, Void> 
{ 
    protected Void doInBackground(Void... params) 
    { 
     try 
     { 
      Thread.sleep(2 * 1000); 
     } 
     catch (InterruptedException e) 
     { 
      Log.e("MAINACTIVITY-ERROR", e.getMessage()); 
      showTheError("Error while starting MainActivity: " + e.getMessage()); 
     } 

     Intent intent = new Intent(getApplicationContext(), MainActivity.class); 
     intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     startActivity(intent); 

     finish();   
     return null; 
    }  
} 
+0

哎,如果我的回答幫你出,請註明它至於:) –

回答

0

確保您在添加活動您的清單

<activity android:name="com.example.listissue.SecondActivity"/> 

也不要打電話來完成()

private class RedirectToMainActivityTask extends AsyncTask<Void, Void, Void> 
{ 
    protected Void doInBackground(Void... params) 
    { 
     try 
     { 
      Thread.sleep(2 * 1000); 
     } 
     catch (InterruptedException e) 
     { 
      e.printStackTrace(); 
     } 
     return null; 
    } 

    @Override 
    protected void onPostExecute(Void result) 
    { 
      Intent intent = new Intent(getApplicationContext(), SecondActivity.class); 
      intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      startActivity(intent); 
    } 

} 
0

嘗試把在OnPostExecute下面的代碼()方法

Intent intent = new Intent(getApplicationContext(), MainActivity.class); 
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(intent); 
+0

不幸的是沒有工作。 –

+0

你得到的任何錯誤?請發佈logcat –

2

您是否嘗試過與控制器做呢? :

new Handler().postDelayed(new Runnable() { 
      @Override 
      public void run() { 

     Intent intent = new Intent(getApplicationContext(), MainActivity.class); 
     intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     startActivity(intent) 
      } 
     }, 2000); //time you want to wait until MainActivity start 
+1

您正在使用應用程序上下文,因此您還必須添加「FLAG_ACTIVITY_NEW_TASK」。 – tynn