草庐IT

threading-multi

全部标签

android - 修订版 2 : How to pass data from a background Service/thread to some other activity than the MainActivity that created the background service

我创建了一个简单的Android应用程序,用于测试如何使用一个或多个处理程序将数据从后台服务/线程传递到创建后台服务的MainActivity以外的其他Activity。我在MainActivity中获得了服务、线程和处理程序。最后一步是让处理程序将数据传递给MainActivity以外的其他一些Activity。我可以让服务将消息传递给MainActivity的处理程序,但我不知道如何让它将数据传递给其他一些Activity。为什么会有人想要这样做?我认为这与一个简单的MP3播放器相比,但它实际上与一个不错的FMradio相比。MainActivity使用允许我选择FM电台的后台服务

android - 没有延迟更新 View 时没有错误 "Only the original thread that created a view hierarchy can touch its views"

我遇到了一个有趣的问题。如果在activity的onCreate/onStart/onResume方法中写入如下代码:finalButtonmyButton=(Button)findViewById(R.id.myButton);finalTextViewmyTextView=(TextView)findViewById(R.id.myTextView);finalThreadthread=newThread(newRunnable(){@Overridepublicvoidrun(){myTextView.setText("Hellotext");}});myButton.setOn

Android- Thread.join() 导致应用程序挂起

我有一个线程处理我的游戏循环,当我在这个线程上调用.join()时,应用程序停止响应。我一直在尝试解决程序永远无法访问代码的问题,即线程永远不会结束。System.out.println("YAY");我的游戏循环线程:该线程成功打印出“游戏结束”,但似乎从未结束。RunnablestartGameLoop=newRunnable(){//gameloop@Overridepublicvoidrun(){AiFactoryai=newAiFactory();finalButtonplay=(Button)findViewById(R.id.Play);finalButtonpass=(

android - 如何在 Unity3D 中为 Android 启用 multi-dex 选项?

在使用Unity构建时,出现错误:troublewritingoutput:Toomanymethodreferences:78849;maxis65536.Youmaytryusing--multi-dexoption.但我不知道如何明确告诉Unity使用multidex。 最佳答案 要在Unity上激活multidex,请遵循3个简单的步骤:1)使用Gradle构建系统:Unity->File->BuildSettings->BuildSystem->Gradle.2)checkin“СustomGradle模板”:Player

android - Google Cloud Messaging 注册方法因 IOException (MAIN_THREAD) 而失败

已关注Google'sGCMexample非常仔细,但仍然出现了令人沮丧的错误。在这里找不到答案,所以我想记录下来以备将来引用。我非常确定我已使用正确的权限等正确设置了list(完全按照上面的示例)...但是这段代码总是导致IOException并解释为“MAIN_THREAD”。Stringregid="";try{GoogleCloudMessaginggcm=GoogleCloudMessaging.getInstance(getApplicationContext());Stringsender_id=getResources().getString(R.string.GCM_

java - 安卓开发 : "thread exiting with uncaught exception"

我正在尝试创建我的第一个Android应用程序(游戏),但我在开始时遇到了一些困难。当我运行我的代码时,我得到这个错误日志:05-2502:41:51.022:WARN/dalvikvm(634):threadid=1:threadexitingwithuncaughtexception(group=0x4001d800)05-2502:41:51.040:ERROR/AndroidRuntime(634):FATALEXCEPTION:main05-2502:41:51.040:ERROR/AndroidRuntime(634):java.lang.RuntimeException:

java - "Animators may only be run on Looper threads"在设备上的仪器测试期间

这是我的测试代码:@RunWith(AndroidJUnit4.class)@SmallTestpublicclassWelcomeActivityTestsextendsBaseTest{ApplicationControllerapplicationController;@RulepublicActivityTestRuleactivityTestRule=newActivityTestRule(WelcomeActivity.class);ArgumentCaptorargumentCaptor;@Before@OverridepublicvoidsetUp(){applicat

android - 等待信号量循环时的 SystemClock.sleep() 与 Thread.sleep()

为了同步/排队访问共享资源,我将使用Semaphore,在等待循环的帮助下。为了不遇到CPUHook,我想在while循环中稍微sleep()。我搜索了http://developer.android.com引用并找到了两个这样的sleep()函数,我很困惑哪个适合哪个场景:Thread.sleep()SystemClock.sleep()哪个更适合我描述的情况,为什么? 最佳答案 首先,你真的需要等待循环吗?您通常可以使用适当的通知来解决您的问题,即拥有一个对象,在其上调用wait()和notify()或其他方式(如阻塞队列,或S

安卓 : Multi touch and TYPE_SYSTEM_OVERLAY

我试图在系统覆盖View上获取多个触摸事件,但我只收到MotionEvent.ACTION_OUTSIDE事件。是否有任何可能的方法在系统覆盖上获取多个触摸事件?任何示例或链接都会非常有帮助。 最佳答案 要创建叠加View,在设置LayoutParams时,您需要将类型设置为TYPE_SYSTEM_OVERLAY并使用标志FLAG_WATCH_OUTSIDE_TOUCH。这会带来一个问题,因为正如Android文档所述:youwillnotreceivethefulldown/move/upgesture,onlythelocati

android - 异步任务 "Only the original thread that created a view hierarchy can touch its views."

我尝试跨AsyncTaks修改Spinner内容,但我不能,Logcat写为“09-1916:36:11.189:ERROR/ERRORTHE(6078):只有创建View层次结构的原始线程可以触摸它的View。”。publicclassGetGroupsextendsAsyncTask{@OverrideprotectedVoiddoInBackground(Void...params){Spinnercombo=(Spinner)findViewById(R.id.group_combo);setGroups(combo);returnnull;}@Overrideprotecte