2013-05-06 59 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