2013-05-06 60 views
0

我想與我的申請asynchtask第一顯示啓動畫面之間murge,我開始與飛濺5 Seconde系列,然後asynchtask,我想,當我也開始我的飛濺asynchtask開始加載,這是我的濺代碼:Asynchtask用濺射屏幕

public class SplashActivity extends Activity { 

    private static String Spsc = SplashActivity.class.getName(); 
    private static long time = 5; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
     this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); // Removes notification bar 
     setContentView(R.layout.splash); 
     IntentLauncher launcher = new IntentLauncher(); 
     launcher.start(); 
    } 
    private class IntentLauncher extends Thread { 
     @Override 
     public void run() { 
      try { 
       Thread.sleep(time*1000); 
      } catch (Exception e) { 
       Log.e(Spsc, e.getMessage()); 
      } 
      Intent intent = new Intent(SplashActivity.this, MainActivity.class); 
      SplashActivity.this.startActivity(intent); 
      SplashActivity.this.finish(); 
     } 
    } 
} 

,這是從mainActivity我飛濺:

class FetchPosts extends AsyncTask<Void, Void, Void> { 
     private ProgressDialog progressDialog; 
     @Override 
     protected void onPreExecute() {   
      super.onPreExecute(); 
      progressDialog = ProgressDialog.show(MainActivity.this, "", getString(R.string.loading_message)); 
     } 

     @Override 
     protected Void doInBackground(Void... params) { 
      articles = Services.getPosts(MainActivity.this); 

      return null; 
     } 

     @Override 
     protected void onPostExecute(Void result) { 
      super.onPostExecute(result); 

      progressDialog.dismiss(); 

     } 
    } 
+1

你的問題是什麼?什麼是/不工作? – codeMagic 2013-05-06 16:48:23

+0

這是2項活動,我想在它們之間發起飛濺,並在同一時間asynchtask加載數據。 – Sherlock 2013-05-06 17:11:12

+0

我明白了。我問的是發生什麼事/現在不在運行時發生?我們知道你想要什麼。我們不知道的是沒有用到的東西。此外,可能需要把你的'AsyncTask'作爲一個內部類的'MainActivity'的,如果它是不是已經或至少'MainActivity' – codeMagic 2013-05-06 17:13:16

回答

0

只需

public class SplashActivity extends Activity { 

private static String Spsc = SplashActivity.class.getName(); 
private static long time = 5; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); // Removes notification bar 
    setContentView(R.layout.splash); 
    IntentLauncher launcher = new IntentLauncher(); 
    launcher.start(); 
} 
private class IntentLauncher extends Thread { 
    @Override 
    public void run() { 
     try { 
      Thread.sleep(time*1000); 
     } catch (Exception e) { 
      Log.e(Spsc, e.getMessage()); 
     } 
     //Intent intent = new Intent(SplashActivity.this, MainActivity.class); 
     //SplashActivity.this.startActivity(intent); 
     //SplashActivity.this.finish(); 
      new FetchPosts().execute(); 
    } 
    } 
public class FetchPosts extends AsyncTask<Void, Void, Void> { 
    private ProgressDialog progressDialog; 
    @Override 
    protected void onPreExecute() {   
     super.onPreExecute(); 
     progressDialog = ProgressDialog.show(MainActivity.this, "", getString(R.string.loading_message)); 
    } 

    @Override 
    protected Void doInBackground(Void... params) { 
     articles = Services.getPosts(MainActivity.this); 

     return null; 
    } 

    @Override 
    protected void onPostExecute(Void result) { 
     super.onPostExecute(result); 

     progressDialog.dismiss(); 

    } 
} 
} 
+0

我應該使用類的東西mainActivity還是什麼?這是兩個活動之間的詭計? – Sherlock 2013-05-06 16:57:34

+0

如果要調用'MainActivity.java'爲只執行'AsyncTask'比現在你不東東該類事業'新FetchPosts()執行();'這將'AsyncTask' – 2013-05-06 17:02:10

+0

好的謝謝你,我會嘗試用這 – Sherlock 2013-05-06 17:11:31

0

嘗試下面的代碼,它會啓動splashscreen acctivity時啓動asynctask

public class SplashActivity extends Activity { 

private static String Spsc = SplashActivity.class.getName(); 
private static long time = 5; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); // Removes notification bar 
    setContentView(R.layout.splash); 
    FetchPosts obj=new FetchPosts(); 
    obj.execute("dummystring"); 
} 
} 

class FetchPosts extends AsyncTask<String, Void, String> { 
    private ProgressDialog progressDialog; 
    @Override 
    protected void onPreExecute() {   
     super.onPreExecute(); 
     progressDialog = ProgressDialog.show(MainActivity.this, "", getString(R.string.loading_message)); 
    } 

    @Override 
    protected Void doInBackground(String... params) { 
     articles = Services.getPosts(MainActivity.this); 

     return null; 
    } 

    @Override 
    protected void onPostExecute(Void result) { 
     super.onPostExecute(result); 

     progressDialog.dismiss(); 

    } 
} 
+0

當我添加的活動該類使其許多錯誤 – Sherlock 2013-05-06 17:13:13

+0

@Kira什麼錯誤? – sam 2013-05-06 17:17:01

+0

@Kira在AsyncTask <>之後用String替換第一個和第三個void並且還使doInBackground(String ... params)的參數 – sam 2013-05-06 17:21:55