【问题标题】:Android LoadScreenAndroid 加载屏幕
【发布时间】:2012-06-16 21:11:10
【问题描述】:

当我的应用程序启动一个文件 scraper 时,该文件会以递归方式通过 sdcard 进行迭代。可以想象,这需要相当长的时间。在我的 epad 变压器上,它可能需要 30 到 40 秒才能快速通过 32gb 的存储空间。

此活动在两个片段中完成,这些片段位于主布局上,从主活动启动。

显然,对于这样的加载时间,我需要做一些事情来提醒用户。但是,根据我的阅读,我无法在加载屏幕后面的后台启动主要活动。我尝试删除进度条,但也失败了。

那么,有什么建议吗?

编辑

我正在阅读有关在片段中使用 aSyncTask 的内容。我很想在慢速列表片段中、启动屏幕上或主视图上方使用进度条

【问题讨论】:

  • AsyncTask 和 ProgressDialog 是我会做的。
  • 进度条在这里肯定是有意义的。还要确保您正在使用后台线程进行处理,可能是通过 AsyncTask。如果您在使用进度条时遇到特定问题,则应在此处提供有关该问题的详细信息。
  • 也可以使用AsyncTaskLoaderDialogFragment。例如,查看此帖子以获取示例:android.codeandmagic.org/2011/07/…

标签: android optimization startup splash-screen


【解决方案1】:

做这样的事情

LoadTask load;

public class LoadTask extends AsyncTask<Void, Integer, Boolean> {

        int prog = 0;

        @Override
        protected Boolean doInBackground(Void... params) {

            //All your loading code goes in here 

            publishProgress(prog++); //Use this to update the progress bar

            publishProgress(-1) //Use this to open other app
            return false;
        }

        protected void onProgressUpdate(Integer... progress) {
             if(progress[i] == -1)
                 //open other app here

             for(int i = 0; i < progress; i++){
                  //set progress here with progress[i];
             }
        }


}

然后启动异步任务使用

load = new LoadTask();
load.execute();

【讨论】:

  • 谢谢,我今天去看看!
  • 没问题 :-) 只需评论以获得更多帮助,如果您想要的话,请记住接受。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-03
  • 1970-01-01
  • 2016-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多