草庐IT

thread_handler

全部标签

android - android.os.Handler 和 java.util.logging.Handler 之间的区别?

问题几乎概括了它。我错误地导入了java.util.logging并且没有获得所需的功能。现在我解决了我的问题,但我想知道为什么android创建了两个Handler。我们可能会错误地导入错误的。与Fragment和SupportFragment一样。 最佳答案 来自theAndroiddocumentation:android.os.Handler:AHandlerallowsyoutosendandprocessMessageandRunnableobjectsassociatedwithathread'sMessageQueu

android - 使用 AlarmManager 与 Handler Android 的不同情况

有人可以通过示例向我解释使用AlarmManager与Handler的不同情况吗?将这两者交替使用有什么缺点吗?谢谢。 最佳答案 他们之间没有什么关系。我假设您指的是在Handler上使用类似postDelayed()的东西进行轮询,这只是Handler的一个小功能。您可以在Activity中使用postDelayed()(也可用于任何小部件或View的其他子类)以获取Activity本身内的简单计时事件。您可以使用AlarmManager进行周期性的后台操作,就像您在Linux/OSX中使用cron或在Windows上使用计划任务

java - Android postDelayed Handler 在 For 循环中?

有没有办法在循环中运行处理程序?我有这段代码,但没有工作,因为它不等待循环,而是以正确的方式执行代码:finalHandlerhandler=newHandler();finalRunnablerunnable=newRunnable(){publicvoidrun(){//needtodotasksontheUIthreadLog.d(TAG,"runntest");//for(inti=1;i当然,当我将延迟移动到循环外的帖子时,它可以正常工作,但它不会迭代也不会执行我需要的时间:finalHandlerhandler=newHandler();finalRunnablerunna

java - android.os.Handler 类是否不需要将某些方法声明为同步?

在构建一个简单的“时钟”应用程序时,我发现Android要求您使用线程A中的android.os.Handler,以便使用来自线程B的数据结果更新线程A中的View对象。我对Java还是比较陌生,这是我之前第一次明确处理线程,但我知道如果两个不同的线程想要访问,通常你会声明方法和/或操作是同步的相同的数据。不过,android.os.Handler似乎是一种特定于Android的线程间数据同步方式,因此您可以避免classic。concurrencyerrors我刚刚链接到的Oracle文档中有详细说明。这是真的吗?如果我发现自己处于Android操作系统要求使用android.os.

android - 将 handler.post(new Runnable());在 Android 中创建新线程?

我编写了一个每3秒更改一次应用程序背景的小应用程序。我使用Handler和Runnable对象来实现这一点。它工作正常。这是我的代码:publicclassMainActivityextendsActivity{privateRelativeLayoutbackgroundLayout;privateintcount;privateHandlerhand=newHandler();@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentVi

android - 这个 Handler 类应该是静态的,否则可能会发生泄漏

我有一个非常简单的代码:packagecom.example.conn08;importandroid.app.Activity;importandroid.os.Bundle;importandroid.os.Handler;importandroid.os.Message;importandroid.util.Log;publicclassMainActivityextendsActivity{privatestaticCustomHandlermHandler;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.

android - 在 Android 中与 Thread 同时录制和处理音频

我正在编写一个小应用程序,它从androidMIC捕获音频,对输入执行FFT,然后将图表绘制成图表给用户。我正在尝试同时进行记录和绘图(很明显,从记录到绘图之间有一小段延迟)。我正在尝试启动两个线程,一个用于读取,一个用于处理。但是,当我处理似乎只接收(或不接收)零时,我遇到了同步问题。任何建议将不胜感激。:)publicclassPlotterextendsActivity{/*plottingobjects*/privatestaticGraphicalViewmView;privateLineGraphline=newLineGraph();privatebooleanrecor

android - 好设计 : Worker Threads and Activity Restarts

众所周知,Android将我们的应用程序组件(Activity、服务)置于随时被杀死的威胁之下。如果你想提供一个健壮的、无泄漏的解决方案,同时保持代码干净并解决关注点分离,这会让事情变得非常复杂。问题:一个Activity开始一个耗时的任务(以Runnable、AsyncTask或任何其他机制的形式)。应显示进度对话框。该任务将打开多个连接,但它应该具有更新进度条的方法,并且可能需要在完成中途显示一个选择对话框。它还应该能够关闭对话框并在发生错误或完成时显示Toast。当一个Activity被杀死然后重新创建一个新实例时,我可以想到两个选项:尝试终止正在运行的任务,并在创建新的替代Ac

java - Thread.sleep(x) 是否足够准确以用作 Android 中的时钟?

我有一个单独的线程在我的主类中运行。它需要每100毫秒发送一次消息,但恰好每100毫秒发送一次。我想知道它是否足够准确,可以这样使用,或者是否有其他方法可以让某些事情每秒准确发生10次。classClockRunimplementsRunnable{@Overridepublicvoidrun(){doublehourlyRate=Double.parseDouble(prefs.getString("hourlyRate",""));doubleelapsedTime=0;do{while(clockRun){doubleamount=hourlyRate/360/100*elaps

Android Handler.post,到底发生了什么

几天以来,我试图弄清楚如果我在中执行代码到底会发生什么voidfunction(){//somePreExecutionCodenewHandler().post(newRunnable(){@Overridepublicvoidrun(){//someCode}});}它似乎并没有阻塞UI,因此调用function()的按钮在someCode完成之前不会停留在单击的位置。但是,如果somePreExecutionCode启动了一个进度条,则进度条会在someCode完成的同一时刻显示。我知道,有AsyncTasksfor,但还有其他可能性吗?和有什么区别newHandler().po