从另一个线程调用Activity的方法

时间:2017-05-29 07:08:38

标签: android android-activity intentservice

我是android新手。在我的应用程序中,有一些活动包含listviews / ExpandableListViews,这些活动是从相关游标填充的。我还有一个intentservice,它将我的App DB与网络上的服务器同步。

我想从服务中调用当前前台活动的方法来更新列表视图。如果我的应用程序没有运行,它自然不应该调用该方法,因为默认情况下列表会在下次启动应用程序时显示更新的数据。

我的问题是,

  1. 我怎么知道我的应用程序是否正在运行?
  2. 如果我的应用正在运行,如何获取当前前台活动?
  3. 如果我的活动正在运行,如何调用该方法?
  4. 提前致谢:)

2 个答案:

答案 0 :(得分:0)

您可以通过onResume,onStop,onCreate等知道该应用是否正在运行... 那些功能正是你想做的...... 设置新的布尔变量"播放", 在onCreate中设置值true。 在onResume上也设置它,并在onStop上设置为false。 比你需要的时候检查它是真还是假。 看看这里: https://developer.android.com/guide/components/activities/activity-lifecycle.html

对于您的其他问题,您可以在活动和服务之间使用brodcastReceiver并发送brodcast。 How to send/receive broadcast between service and activity 看看问题和答案。 你也可以看看这个教程: https://developer.android.com/guide/components/broadcasts.html 我是stackoverflow的新手,请告诉我,如果我做错了什么...... 我希望我帮忙!祝你好运

答案 1 :(得分:0)

EventBus库针对此类任务进行了优化,简化了组件之间的通信。