相关疑难解决方法(0)

Handlers vs Threads是否有任何真正的性能影响?

有关正确使用Threadsvs. Handlersvs. 的问题有很多AsyncTask.(像这里这里)

这些问题很好地解决了何时使用什么问题.我的问题更多的是关于某些类型案件的绩效影响.

作为一个例子,我经常看到其他人编写代码,他们只使用Threads这些代码来为将来安排一些代码执行.每当我看到这一点时,我本能地感觉要重构代码以使用a Handler而只是延迟发布一个帖子runnable.

这是一个示例,其中一个Thread用于更新某些媒体播放的搜索栏mediaplayer,然后是我的方式.

我看到了很多东西:

 if (positionTracker != null && positionTracker.isAlive()
                && !positionTracker.isInterrupted()) {
            return;
        }

        positionTracker = new Thread(new Runnable() {

            public void run() {
                int currentPosition = 0;
                int total = player.getDuration();
                while (player != null && CurrentPosition < total) {
                    try {
                        Thread.sleep(1000);
                        currentPosition = player.getCurrentPosition();
                    } catch (InterruptedException e) {
                        return;
                    } catch (Exception e) {
                        return; …
Run Code Online (Sandbox Code Playgroud)

android

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

Android - Thread和AsyncTask之间的区别?

在我的应用程序中我有按钮,单击时将查询数据库并在屏幕上显示结果.查询操作通常需要1~3秒.这些按钮将经常被点击.

我已经在AsyncTask和Thread上实现了这个动作,但看起来差别很小.

但是从长远来看,尤其是在按钮被多次点击时,这在资源(CPU,内存)方面会更有益吗?

java android android-asynctask android-handler java-threads

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

Looper 还是在线程中?

我正在尝试了解 Looper...

这次我有点困惑,因为我只使用(直到现在)while(true) 条件来保持线程处于无限循环中。

我只想知道使用 Looper 还是 while(true) 条件更好。

我在互联网上搜索了我的问题的可能答案,但我对找到同时使用 Looper 和 while(true) 的代码感到非常失望。

可能我没有明白使用 Looper 的意义,但是,你知道,我们是来学习的……不是吗?

multithreading android

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

新线程和AsyncTask之间的区别

new Thread(new Runnable(){

}).run();
Run Code Online (Sandbox Code Playgroud)

VS

new AsyncTask().execute();
Run Code Online (Sandbox Code Playgroud)

我的印象是他们是同一个东西,都开始了新的工作线程,但事实并非如此吗?

我问的原因是因为如果我尝试使用任何类型的网络连接new Thread()我得到一个NetworkOnMainThreadException但是当我在异步任务中放入相同的代码时,我没有得到它.

这个差异的另一个例子是使用google maps api v2,其中所有的情节/显示/隐藏必须在上面进行,main thread但是如果我new Thread()用来隐藏/显示标记,那么看起来很好但是如果我尝试在异步任务中显示/隐藏我得到一个例外,说它需要在主线程上完成.

new Thread()真的不启动辅助线程?

编辑

不知道为什么这个被关闭,因为提供的链接我已阅读并没有回答我的问题,并没有提到使用run()vs start()回答我的问题

multithreading android

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

Android多线程和服务

我对Android中的多线程有点困惑.我知道我们可以实现使用AsyncTaskHandler.通常什么时候我们应该通过在Android中扩展Thread Class来实现?任何人都可以举一个例子,我们只需要通过扩展线程类而不是使用AsyncTask或来做它Handler.

  1. 考虑一个示例应用程序,我们在活动中有一个弹跳球(忘记动画部分),我需要每20分钟更改一次球的颜色,我需要从服务器获取颜色代码并更新球UI.现在我该怎么做到这一点?有人可以解释使用AsyncTaskHandler仅使用线程类(没有AsynctaskHandler)?

  2. 我该如何处理使用服务从服务器下载大型有效负载.

java service multithreading android android-asynctask

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