相关疑难解决方法(0)

在Android应用程序中加载资源时启动屏幕

我想在加载资源(图像和声音)时有一个闪屏.我怎么知道一切都装满了?是否在应用启动时加载了所有资源?

谢谢

resources android splash-screen

14
推荐指数
3
解决办法
6万
查看次数

我可以在单个流程应用程序中运行多少个AsyncTasks

我正在使用asyncTasks,用图像加载列表元素(只需按照android的有效加载位图的教程)

在DDMS中,我可以看到最多5个AsyncTasks正在运行

此外,我还添加了另一个AsyncTask,它使用MediaCodec类执行一些解码.

现在在DDMS中,我仍然看到5个AsyncTasks,我的图像加载aynctask或解码异步任务执行,而不是两个.

当解码正在运行时,如果我滚动列表,元素的图像不会更新当我通过调用它的执行方法启动新的解码asynctask时,解码不会启动,但如果我现在滚动列表视图,图像会更新.

那么AsyncTask是否有限制?

即使在listAdapter中,我也会根据getView调用启动AsyncTask.我期待7个运行asyncTasks(如果列表可见元素是7,比方说),但DDMS只显示5个asynctasks正在运行.

现在有人可以解释一下我无法拼写的黑魔法是什么吗?

android executorservice android-asynctask threadpoolexecutor

11
推荐指数
1
解决办法
8871
查看次数

Android AsyncTask在完成后仍处于运行状态

在处理应用程序时,我注意到线程数一直在增长.AsyncTask线程由于某种原因保持打开状态(我确信它们已经完成处理并退出).我不知道为什么我会继续创建更多这种类型的线程,并且它们会无限期地继续运行.

有没有办法验证这些线程是否在完成时终止?是否存在AsyncTask线程保持打开的已知问题?

运行时:

public  class DoNothingTask extends AsyncTask<Void, Void, Void> {

        @Override
        protected Void doInBackground(Void... params) {
            // TODO Auto-generated method stub
            return null;
        }

    }
Run Code Online (Sandbox Code Playgroud)

我在debbuger中看到每次执行的新线程new DoNothingTask().execute(null); 如下:

Thread[<ThreadNumber>AsyncTask#1](running)

我的问题是为什么会这样?我的应用程序很大程度上依赖于AsyncTask,我不能创建新的线程并在每个任务后保持活跃状态​​.

multithreading android

10
推荐指数
1
解决办法
6236
查看次数

如何正确关闭java ExecutorService

我有一个简单的java ExecutorService运行一些任务对象(实现Callable).

ExecutorService exec = Executors.newSingleThreadExecutor();
List<CallableTask> tasks = new ArrayList<>();
// ... create some tasks
for (CallableTask task : tasks) {
 Future future = exec.submit(task);
 result = (String) future.get(timeout, TimeUnit.SECONDS);
 // TASKS load some classes and invoke their methods (they may create additional threads)
 // ... catch interruptions and timeouts
}
exec.shutdownNow();
Run Code Online (Sandbox Code Playgroud)

在完成所有任务(DONE或TIMEOUT-ed)之后,我尝试关闭执行程序,但它不会停止:exec.isTerminated() = FALSE. 我怀疑某些被执行的任务未正确终止.

是的,我知道执行者的关闭不能保证任何事情:

除尽力尝试停止处理主动执行任务之外,没有任何保证.例如,典型的实现将通过{@link Thread#interrupt}取消,因此任何未能响应中断的任务都可能永远不会终止.

我的问题是,有没有办法确保这些(任务)线程终止?我提出的最佳解决方案是System.exit()在程序结束时调用,但这很简单.

java multithreading shutdown executorservice

9
推荐指数
2
解决办法
8073
查看次数

AsyncTasks是否有同时执行的限制?

这应该有一个简单的答案,但我找不到任何答案.因为我还是个假人,所以我来这里问你们.

我一直在创建这个在启动时执行10个AsyncTasks的项目.每个任务包含3个URL,这些URL在那里收集数据,并且在应用程序中尚未执行任何重要操作.

我还有10个textviews,用于跟踪AsyncTasks的进度.

当任务开始时,相应的文本视图被置于"开始"当任务正在进行时,它将其适当的文本视图设置为"正在下载"当任务完成时,它将其适当的文本视图设置为"已完成"

这就是我观察到的并且对AsyncTask提出质疑.当我启动应用程序时,我注意到有5个文本视图被切换到"正在下载"标记,所以我看到5个AsyncTasks正在按照自己的意愿完成工作.完成后,它启动一个新的AsyncTask.然而,他们从未超过5的限制.

是什么导致5个AsynchTasks同时运行的限制?我是否在一些我找不到的文件中导致这种情况?这是android 2.3.3的限制吗?也许是我用来模拟应用程序的设备的限制?

任何人都可以为我详细说明吗?

android limit android-asynctask android-2.3-gingerbread

7
推荐指数
1
解决办法
1万
查看次数

Android - 使用AsyncTasks的正确方法?

使用asynctasks的正确方法是什么?假设用户输入一个活动,并且asynctask启动,并且当asynctask正在运行时,用户决定导航到另一个页面.

  • 任何事情都会发生什么?它会一直运行直到它完成?
  • 我有责任以某种方式阻止这个asynctask吗?

android android-asynctask

5
推荐指数
1
解决办法
2994
查看次数

是什么杀死了Android AsyncTask?

PrintStatusTask解析gmail收件箱中的内容,查找要报告的各种感兴趣的项目.但是根据调试器为每个PrintStatusTask().execute()创建一个新的AsyncTask.这些任务不应该在退出时死亡吗?他们必须手动杀死吗?

public class Controller extends Activity {
    ...
    private boolean applyMenuChoice(MenuItem item) {
        switch (item.getItemId()) {
        case R.id.menuStatus:
            new PrintStatusTask().execute();
            ...
    class PrintStatusTask extends AsyncTask<Void, String, Void> {
        @Override
        protected Void doInBackground(Void... unused) {
            ...
            return null;
        }
        @Override
        protected void onPostExecute(Void unused) {
            this.cancel(true);
        }   
    }
}
Run Code Online (Sandbox Code Playgroud)

android android-asynctask

1
推荐指数
1
解决办法
9391
查看次数

android启动画面/加载画面

我有一个启动画面/加载屏幕,在我的大位图的绘制调用完成后立即有.setVisibility()到GONE.问题是启动画面需要一些弹出窗口,我认为这是由于主要活动启动并在首次运行时执行CPU密集型应用程序.有没有办法尽快显示我的启动画面?如果我在不同的线程中拥有它可能会好吗?启动画面只是一个位图,其下方有一个progressBar.我的布局是基于xml的,所以我看不到自己使用setContentView.谢谢.

multithreading android splash-screen android-2.1-eclair

1
推荐指数
1
解决办法
1万
查看次数