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