使用asynctask加速Android应用程序启动时间

使用asynctask加速Android应用程序启动时间,第1张

概述我有一个应用程序,它从两个网络加载广告,并在启动时将flash文件设置为webview.这使得它在启动时太慢,论坛告诉我使用asynctask.Can有人使这个代码成为asynctask.publicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setCo

我有一个应用程序,它从两个网络加载广告,并在启动时将flash文件设置为webvIEw.这使得它在启动时太慢,论坛告诉我使用asynctask.Can有人使这个代码成为asynctask.

        public voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentVIEw(R.layout.activity_main);    airpush=new Airpush(getApplicationContext());    airpush.startPushNotification(false);    airpush.startIconAd();    airpush.startDialogAd();    airpush.startAppWall();    mWebVIEw = (WebVIEw) findVIEwByID(R.ID.webvIEw);    mWebVIEw.getSettings().setJavaScriptEnabled(true);    mWebVIEw.getSettings().setPluginsEnabled(true);    mWebVIEw.setScrollbarStyle(WebVIEw.SCRolLbarS_OUTSIDE_OVERLAY);     mWebVIEw.setBackgroundcolor(color.parsecolor("#000000"));    mWebVIEw.loadUrl("file:///androID_asset/game.swf");    AdVIEw adVIEw = (AdVIEw)this.findVIEwByID(R.ID.adVIEw);    adVIEw.loadAd(new AdRequest());

解决方法:

我不能只是让你的代码成为AsyncTask,但我可以给你一个例子和一些帮助.这是AsyncTask的一个例子

public class TalkToServer extends AsyncTask<String, String, String> {@OverrIDeprotected voID onPreExecute() {    super.onPreExecute();}@OverrIDeprotected voID onProgressUpdate(String... values) {    super.onProgressUpdate(values);}@OverrIDeprotected String doInBackground(String... params) {//do your work here    return something;}@OverrIDeprotected voID onPostExecute(String result) {    super.onPostExecute(result);       // do something with data here-display it or send to mainactivity

}

如果您需要更新在其他方法中执行的UI,那么您将放入doInBackground()中的所有网络内容.完成网络后,您可以在onPostExecute()中更新UI.

这就是你如何调用任务

TalkToServer myAsync = new TalkToServer() //can add params if you have a constructormyAsync.execute() //can pass params here for `doInBackground()` method

如果它是MainActivity的内部类,那么它将可以访问MainActivity的成员变量.如果它是一个单独的类,那么你可以将上下文传递给构造函数

TalkToServer myAsync = new TalkToServer(this);

并创建一个构造函数来接受Context和您想要的任何其他参数

我强烈建议您阅读下面的文档,并确保了解它是如何工作的.入门时最重要的事情可能是doInBackground()不能在UI上运行,所以你不想在这里尝试更新任何视图,而是在其他AsyncTask方法中或者通过将数据传递回MainActivity并更新那里
AsyncTask

总结

以上是内存溢出为你收集整理的使用asynctask加速Android应用程序启动时间全部内容,希望文章能够帮你解决使用asynctask加速Android应用程序启动时间所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1103072.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存