jjzjj

android - 从服务使用 : runOnUiThread or AsyncTask or Handler or Post

我正在编写一个voip应用程序。它基于管理voip逻辑的服务和用于调用电话、应答等的UI。从服务更新UI的最佳方式是什么:runOnUiThread或AsyncTask或处理程序或发布什么时候使用一种方法而不是另一种方法?我知道runOnUiThread是有问题的,因为它可能会导致事件乱序运行(如果线程已经是UI线程)。谢谢。 最佳答案 据我所知,您不能直接从服务更新屏幕。您必须使用广播接收器从服务中捕获您的广播。我想AsyncTask本身使用runOnUiThread,但它提供了在后台线程中执行一个方法并将结果放入UI线程的好方法

Android:处理程序的消息在工作线程结束时延迟

我在服务内部使用一个线程,它执行一些繁重的处理,我想在此处理期间更新GUI(Activity)。为此,我将消息从线程发送到处理程序,并从处理程序更新GUI。但问题是只有当工作线程终止时,处理程序才会收到消息,就好像消息队列被阻塞一样。我使用服务的原因是因为即使应用程序未显示,该过程也应该继续。应用程序的目标是通过发送预定义命令列表来测试NFC芯片(ISO15693)。所以发送命令是由线程完成的,并且对于每个命令,结果被发送到处理程序。这是我的代码:申请publicclassISO15693ApplicationextendsApplication{...//Handlerreceivi

java - 倒数计时器延迟 - Android

我正在制作一个国际象棋时钟,但在其中我需要一个延迟(就像它在计数之前等待10秒)。我为此使用了处理程序,但如果在10秒内单击按钮,则什么也不会发生。请帮忙!谢谢!我的代码:mHandler.postDelayed(newRunnable(){publicvoidrun(){//countdowntimerstarttimer2=newCountDownTimer(totalSeconds,Integer.parseInt(delay.getText().toString())){publicvoidonTick(longmillisUntilFinished){secondsTimer

java - 在 Android 运行时更新 View

这个例子非常简单:我想通过显示文本(canvas.drawText())让用户知道应用程序在做什么。然后,出现了我的第一条消息,但没有出现其他消息。我的意思是,我有一个“setText”方法,但它不会更新。onCreate(Bundlebundle){super.onCreate(bundle);setContentView(splash);//splashistheviewclassloadResources();splash.setText("this");boundWebService();splash.setText("that"):etc();splash.setText("

android - thread/runnable, handler, runonuithread, asynctask 之间的区别

我开始学习安卓编程,并且正在开发一款小游戏。我听说做后台操作或更新或下载或任何后台和耗时的事情不应该用uithread来完成,而是使用thread/runnable或asynctask。但是我不能在线程中做一些事情,比如后台连接到数据库,因为这个连接与剩余的处理程序一起工作,runonuithread,asynctask.am非常困惑在哪里使用哪个。我有一些问题1.handler、runonuithread都运行在ui线程上,thread/runnable是不同的线程,在异步任务中,doinbackground方法运行在不同的线程上,其他方法如onprogressupdate、onpr

java - 从单独的线程制作 Toast 消息

我尝试在单击按钮时从线程向UIThread发送Toast消息。但是,每次我单击按钮时,Toast都不会出现。我正在使用处理程序来执行此操作。这是完整的代码,以防我在某个地方犯了重大错误:packagegoogle.map.activity;//importspublicclassGoogleMapActivityextendsMapActivity{intlat=0;intlng=0;Locationlocation;MapControllermc;GeoPointp;privateMapControllermapController;privateMapViewmapView;pri

android - 如何在Handler线程中做横向数据

我有一个Activity,其中包含2个fragment,每个fragment有2个listviews,每个都有一个适配器。因此,我从服务器的json中获取了相当长的数据,我使用AsyncTask并在postexecute上解析数据。问题是它会卡住加载动画4-5秒。我已尝试使用Handler线程,但问题仍然存在,我一定是在这里做错了什么。publicclassDataServiceextendsAsyncTask{@OverrideprotectedVoiddoInBackground(String...params){url=newURL(DATA_URL);//Connections

android - 具有线程安全性的事件总线的最佳实践

我的应用程序具有用于用户交互的Activity和后台服务,这是唯一修改数据模型的地方。后台服务监听用户执行的操作以及来自网络的传入消息。因此可能会出现并发问题,我试图通过使用处理程序来防止这些问题。对于事件层,我使用greenrobotsEventbus。这一切都运行良好,但我想知道是否有更智能/更快/代码更少(因此更不容易出错)的方式来处理这个用例?更具体地说:有没有办法确保onEvent方法的串行执行没有处理程序?有没有onEvent方法的替代方法对于每个可能的事件?我有更好的模式吗在这里做什么?这是我的方法:在oncreate方法中,我会注册服务(如果有Activity,我会在o

android - 在 Android 中使用 CountDown Timer 或基于 Handler 自己滚动

这篇文章:http://android-developers.blogspot.co.uk/2007/11/stitch-in-time.html描述了如何使用Handler实现定时器。我可以使用CountDown计时器实现相同的目的:http://developer.android.com/reference/android/os/CountDownTimer.html这将在前台服务中运行,该服务正在播放音乐,以便在指定时间段后停止播放音乐(想想音乐椅)。屏幕锁定时的时间需要可靠,我认为在前台服务中运行它应该确保这一点,是这样吗?我从这个帖子知道:WhydoesCountDownTi

Django笔记三十之log日志记录详解

本文首发于公众号:Hunter后端原文链接:Django笔记三十之log日志的记录详解这一节介绍在Django系统里使用logging记录日志以下是一个简单的logging模块示例,可以先预览一下,接下来会详细介绍各个模块的具体功能:LOGGING={'version':1,'disable_existing_loggers':False,'formatters':{'verbose':{'format':'%(levelname)s%(message)s',}},'handlers':{'file_1':{'level':'INFO','filename':'/Users/hunter/py