如何在onCreate期间打印出来的东西

时间:2012-02-12 05:23:42

标签: android

在onCreate()期间,我从网上下载资源,这需要时间。我想在屏幕上显示一条消息,告知用户。我尝试了烤面包,但没有出现任何东西。还有另一种方法可以将某些内容打印到屏幕上吗?

2 个答案:

答案 0 :(得分:0)

我认为onCreate()的工作方式类似于类的构造函数,并且在尚未完成时无法加载任何视觉效果。 因此,我建议您在邮件中使用其他活动,然后在其中调用您的活动。

答案 1 :(得分:0)

你必须创建一个启动画面,这就是它的调用方式。 它是处理此类行为的调解员活动。

示例:

public class SplashScreen extends BaseActivity {
    public ProgressDialog ProgressBar = null;


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        HideTitle();
        setContentView(R.layout.splash);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

        if (!IsConnected()) {           
            Handler handler = new Handler();
            handler.postDelayed(new Runnable() {
                public void run() {
                    finish();
                }
            }, 4000);

        } else {
            ProgressBar = ProgressDialog.show(this, "", "Loading...", false, false);
            SplashScreenDelay splashScreenDelay = new SplashScreenDelay(this, this);
            splashScreenDelay.execute(10);
        }
    }   

这是执行加载的类,然后发送到主

public class SplashScreenDelay extends AsyncTask<Integer, Integer, List<RssItem>> {
    private Context _context;
    private SplashScreen _activity;

    public SplashScreenDelay(SplashScreen activity, Context context) {
        _context = context;
        _activity = activity;
    }

    @Override
    protected List<RssItem> doInBackground(Integer... params) {
        return RssParsingService.getListOfItems();
    }

    @Override
    protected void onPostExecute(List<RssItem> result) {
        Intent intent = new Intent(_context, Viewport.class);
        _context.startActivity(intent);

        if (_activity.ProgressBar != null) {
            _activity.ProgressBar.dismiss();
        }       
    }
}