草庐IT

主线程

全部标签

android - subscribeOn() 没有离开主线程

我将RxJava2与RoomSQLite结合使用。我的道:@DaopublicinterfaceHeroDao{@Insertlongcreate(Herohero);}这就是我在RxJava2中使用它的方式:Observable.just((int)heroDao.create(hero)).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(id->/**dostuff**/);但是当我运行该应用程序时,我在Logcat中遇到的错误是无法访问主线程上的数据库,因为它可能会长

android - Retrofit Request Interceptor 阻塞主线程

这个问题已经提到了here,但这是一个很老的问题,我找不到任何其他信息。RetrofitAPI调用的请求拦截器在主线程上执行。这是处理AccountManager以将身份验证token添加到请求header时的问题,例如Stringtoken=mAccountManager.blockingGetAuthToken(account,AuthConsts.AUTH_TYPE,false);在G+上讨论了同样的问题GitHub上有一个相关问题here.虽然这一切都奏效了(感谢SquareUp!),但最好的解决方法是什么?将Retrofit调用包装在AsyncTask或类似的东西中感觉就像使

Android设置app开机自启,网络监听,主线程完成UI渲染,HTTP网络请求工具,json数据处理,android使用sqlite,Android定时任务,日志打印

Android7.1.1开机自动启动配置在AndroidManifest.xml文件中添加权限uses-permissionandroid:name="android.permission.RECEIVE_BOOT_COMPLETED"/>在AndroidManifest.xml文件中注册接收广播配置,添加到manifest>application节点下receiverandroid:name=".MyReceiver"android:enabled="true"android:exported="true">intent-filterandroid:priority="1000"> acti

android - 广播接收器在主线程上运行?

我在我的应用程序中使用MQTT服务器。所以我将数据作为单个字符串而不是批量json数据获取。因此,如果有100条记录,我的广播接收器的onReceive将被调用100次。我正在从接收到的字符串中提取数据并将其仅保存到此接收器类中的数据库中。我知道通常广播接收器会在主线程中运行。所以如果我采用这种方法,我的应用程序将会挂起。那么什么是合适的方法呢?如果我想在单独的线程中运行我的接收器我应该怎么做?这是我注册接收器的方式:mMessageReceiver=newMQTTMessageReceiver();IntentFilterintentFilter=newIntentFilter(MQ

for循环内线程池并发执行任务,等到子线程全部处理完任务,主线程在执行java的实现方式

for循环内线程池并发执行任务,等到子线程全部处理完任务,主线程在执行方式一使用CountDownLatch在Java中,您可以使用CountDownLatch来实现主线程等待子线程执行完成的功能。CountDownLatch是一个同步工具类,它允许一个或多个线程等待其他线程完成操作后再继续执行。具体来说,您可以在每个子线程中创建一个CountDownLatch对象,并将计数器初始化为1。当子线程处理完任务后,调用CountDownLatch.countDown()方法,将计数器减1。在主线程中,调用CountDownLatch.await()方法阻塞等待所有子线程的任务执行完毕,直到计数器减

android - 获取主线程的消息队列和处理程序

如何从另一个线程获取主线程的消息队列?Looper.getMainLooper()获取主线程的循环器,但我无法找到一种方法来获取另一个线程的循环器的MessageQueue。此外,如何获得主循环程序的处理程序?我找不到任何方法来获取它。 最佳答案 @r.v,我也有类似的需求。我想知道MessageQueue什么时候是空的,什么时候我发布一些东西让它做,我想知道什么时候它变空了,没有什么可做的。我查看了MessageQueue.IdleHandler,发现它的行为与我想的不一样,我想出了另一个解决方案。在我的例子中,我想使用Loope

【系统移植】 移植主线Buildroot(2023.02-rc3)到RK3399

文章目录一、编译环境二、Git环境三、克隆源代码四、编译源代码五、烧录固件六、系统启动一、编译环境PC机用的是Ubuntu18.04,执行以下命令安装必要工具:sudoaptinstallgccbuild-essentialbisonflexgettexttclsharutilslibncurses-devzlib1g-dev\exuberant-ctagsg++texinfopatchvimlibtoolbcgitpython3二、Git环境

android - 跳过帧。应用程序可能在它的主线程上做了太多工作”Android 4.3 nexus 7 上的错误

这个问题在这里已经有了答案:Theapplicationmaybedoingtoomuchworkonitsmainthread(21个回答)关闭去年。importjava.io.BufferedReader;publicclassMainextendsActivityimplementsSurfaceHolder.Callback,MediaPlayer.OnCompletionListener,View.OnClickListener,OnInitListener{StringSrcPath="";MediaPlayermp;SurfaceViewmSurfaceView;priv

java - Square Tape file backed queue 可以从 android 的主线程使用吗?

Square有个开源项目名称Tapehttp://square.github.io/tape/实现持久文件支持队列。所有示例似乎都表明可以从主线程将对象添加到队列中。然而,android的所有其他最佳实践似乎都表明在主线程上执行I/O只是在玩ANR鸡。SquareTape文件支持队列是否设计用于从主线程使用?如果是这样,与任何其他形式的I/O相比,是什么让它可以从主线程可靠安全地使用而不用担心ANR? 最佳答案 如果你看一下http://square.github.io/tape/上的例子,基本上你应该在每个Task继承类的线程中使

android - Admob 横幅降低了应用程序的速度并在主线程上做了太多工作 - Android

我有一个包含最多30个项目的RecycleView的Activity。每个项目包含2到3个TextView和1个按钮。单击按钮时我有动画。在添加admob横幅之前,性能非常好,滚动很流畅。添加admobbanner后,滚动条被截断,点击按钮需要一点react。另外,我看到消息显示主线程上有太多工作!关于如何修复它有什么建议吗?或者什么可以帮助让它变得更好?如何在启用admob横幅的情况下平滑滚动?希望我不是唯一面临这个问题的人!更新: 最佳答案 看来adView是问题所在我已将adView替换为NativeContentAdView