0

在我的应用程序中,主页面包含了很多图片来加载我的上传管理器活动,因此可能需要几秒钟,具体取决于有多少图片。我计划创建一个启动画面来执行此加载,同时显示的图像不像标题的默认空白屏幕那么糟糕。我已经做到了这一点,这应该工作,除了setcontentview()运行,但不显示。安卓异步启动屏幕没有显示内容视图

public class SplashScreen extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.splash_screen); 


    load l=new load(); 
    l.execute(this); 
} 


class load extends AsyncTask<Activity, Object, Object>{ 

    @Override 
    protected Object doInBackground(Activity... a) { 
     // TODO Auto-generated method stub 


    Log.i("ss", "splash"); 
     Intent intent = new Intent(a[0], UploadManager.class); 
     startActivity(intent); 
     a[0].finish(); 


     return null; 
    } 

} 
} 

有没有人有什么建议? ,随时提问详情,我不认为我已经解释得很好。

编辑:

谢谢你们的快速反应。然而 我相信问题是,我没有使用正确的目的,闪屏,参与 的过程:

Intent intent = new Intent(a[0], UploadManager.class); 
    startActivity(intent); 
    a[0].finish(); 

似乎瞬间完成,我的onCreate方法意味着图像不执行直到闪屏结束。我所做的改变是将我的网格加载到asynk任务中,就像在那里做我的图像一样。

我现在快速加载几秒后出现的图像。我将实施某种进度对话框。

任何其他有类似问题的人应该优先考虑使装载更有效率,因为我有。

回答

1

你传入语境l.execute(本)和类负荷您已经通过活动实例。 你能做到这样,它就像一个魅力对我来说

public class SplashScreen extends Activity{ 


    private static int SLPASH_TIME_OUT = 3000; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_splash); 

     new Handler().postDelayed(new Runnable() { 

      @Override 
      public void run() { 
       // TODO Auto-generated method stub 
       Intent i = new Intent(SplashScreen.this, MainActivity.class); 

       startActivity(i); 
       finish(); 
      } 
     }, SLPASH_TIME_OUT); 
    } 
} 
0

覆盖onPostExecute方法class load extends AsyncTask<Activity, Object, Object>{类,当你doInBackground方法共完成图像下载,这将运行。 在onPostExecute你可以打开你的下一个活动

protected void onPostExecute(Void unused) { Intent intent= new Intent(this, next.class); startActivity(intent); }

相关问题