线程

Android的Wakelock是后台服务的必需品吗?

您需要使用adboverIP连接到您的设备,然后从那里执行logcat以查看您是否仍然遵守预期的日志.编辑:忘了真正回答这个问题.如果您希望您的服务不断进行,那么您需要保留一个唤醒锁.请记住,永久保留唤醒锁定在移动编程中基本上是罪恶#1.你永远不应该永远保持WAKELOCK.由于您的服务正在跟踪数据使用情况,因此不需要唤醒锁,因为如果设备处于休眠状态,则无需记录数据.编辑2:我们来试验吧!

在UI线程上测试Android Junit4

我正在使用Junit4语法,通过android测试支持库为Android编写单元测试.我想测试我的自定义视图.测试包括单击复选框并确保其他位置的值得到正确更新,但是当我尝试运行测试时出现此错误:我没有定义任何自定义动画,我并不真正关心它们进行此测试,但我认为它是Android5.0材质主题,可以创建一个复选框动画.我假设抛出异常是因为测试不在UI线程上运行而且动画师无法动画.那么如何在UI线程上运行测试呢?

android – MediaPlayer.start()也应该是一个新线程吗?

如果它在同一个线程中运行,它也会阻塞.解决方法MediaPlayer.start()至少不是密集型操作.MediaPlayer使用自己的本机线程来执行任务,但是对UI线程调用同步prepare方法可能需要很长时间,特别是如果它是您尝试播放的远程媒体.在这种情况下,它必须等待一个或多个网络请求,数据缓冲等.如果你在那里调用prepareAsync,onPrepared回调将在主线程上发生..

android – 在onResume / onPause中重启/暂停线程

我有一个使用SurfaceView实现来显示对象的游戏.我有一个线程可以将SurfaceView定时绘制到屏幕上.游戏完全正常运行.不幸的是,只要游戏中断,它就需要有一个暂停功能.好吧,我知道我需要操作onResume和onPause.但我无法做到对.错误指向我回到surfaceCreated,我开始线程告诉我线程已经启动.我尝试使用简历并暂停onResume和onPause但没有任何改变.我怎样才能做到这一点?

android – 为什么MediaRecorder函数不会导致ANR错误?

我在Android5.1中使用MediaRecorder和MediaProjection函数启动服务来重新调整屏幕,我认为代码方法1会导致应用程序无响应错误,因为它在主线程中有效.>我测试代码方法1重新编码屏幕很长时间,它不会发生“应用程序无响应错误”,为什么?这是否意味着MediaRecorder和MediaProjection函数在分离的线程中工作?>在代码方法2中,我创建了一个运行mRecordHelper.StartRecord的线程;但我得到错误java.lang.RuntimeExceptio

android – 内存泄漏终结器错误

我一直在研究内存泄漏并使用内存分析器工具来检查它们.所以,作为一种做法,我有以下代码泄漏活动,因为匿名内部类持有对活动的引用.这是代码:我在这里有上述泄漏的记忆分析仪图像(6次旋转):很明显,有6个运行线程持有对外部活动的隐式引用,从而防止它被垃圾收集.现在,请考虑以下代码:在这里,我已经使类成为静态,因此没有对外部活动的引用,GC可以自由地回收Activity对象而不会被线程类阻止.以下是相同的

Android上的SQLite数据库,多线程,锁定和帐户同步

我真的很陌生,我不知道reentrantlock是不是一个好选择,如果我在适当的时候锁定/解锁>我的同步方法是否正确实施?我的意思是,我已将synchronized关键字放在我不希望被并发线程中断的方法周围.这是正确的吗?你可以就我的同步使用提出建议吗?有更好的模式吗?>让DbManager成为单身人士是个好主意吗?

Android- Thread.join()导致Application挂起

我有一个处理我的游戏循环的线程,当我在这个线程上调用.join()时应用程序停止响应.我一直在努力解决程序永远无法访问代码的问题,因为线程永远不会结束.我的游戏循环线程:这个帖子成功打印出“GameEnded”但似乎永远不会完成.启动并将线程加入主线程:据我所知.join()使当前线程等到新线程完成后再继续.对不起,如果这是一个愚蠢的问题,我对线程很新.解决方法当您在Activity.onCrea

android – 这个线程安全吗?

我正在编写一个Android应用程序,并使用工作线程来处理某些信息.通读了我的代码后,我现在不确定它是否是线程安全的.我已经编写了我的代码的简化版本,我省略了用于与主线程进行通信的Handler对象,显然是进程本身.通过运行类似于此的东西来调用它.那么,这个代码是不是线程安全的,因为我在run()函数中修改myString?如果在新线程中写入主线程后从主线程读取它,则不是线程安全的.