Android,活动和主题

时间:2014-09-23 08:34:57

标签: android multithreading

我是Android和Java的新手。我需要对线程及其与活动的关系做一些澄清。我正在考虑这种情况:在后台运行的代码可以在两个活动中看到。我不知道是否可以使用线程实现这一点。从我读过的内容来看,使用服务会没有问题,但我不确定线程​​的情况,所以我的问题在这里:如果一个线程在后台运行,它是否可以“看到”两个或者更多活动?例如,关于线程的最基本样本会更改某些活动中的文本或更新进度条的值,但是,是否可以使用相同的线程在第二个活动中执行相同操作?或者我需要为第二个活动创建一个新线程来做同样的事情?对于这种情况,服务是否更好?

谢谢。

1 个答案:

答案 0 :(得分:0)

  

如果某个主题在后台运行,那么它是否可以为两个或“可见”   更多活动?

如果我理解“可见”,因为它可以访问这些Activity实例然后是,为什么不呢?这只是另一个对象。

  

例如,关于线程的最基本样本会更改文本   某些活动或更新进度条的值,但是,这可以   在第二个活动中使用相同的线程来做同样的事情吗?

当然。请记住,唯一可以绘制UI的线程是UI线程(也称为主线程或系统线程)。要从您创建的任何其他线程执行任何UI更新,您需要调用runOnUiThread()

  

对于这种情况,服务是否更好?

如果此主题仅用于更新您的应用UI,则后台线程是最佳解决方案。应用程序关闭后,服务将继续运行,您还需要使用IPC来交流应用程序和服务,这样做速度较慢,需要更多代码。

您也可以考虑使用AsyncTask,它更适合您的情况,因为它的某些方法直接在UI线程上运行(因此您不需要runOnUiThread