2017-05-29 72 views
-2

我是新来的android。在我的应用程序中,有一些有关listviews/ExpandableListViews的活动,这些活动由相关游标填充。我还有一个intentservice,可以将我的应用程序数据库与网络上的服务器同步。从另一个线程调用活动的方法

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

我的问题是,

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

感谢提前:)

+1

在您的活动中使用BroadcastReciver。因此,您可以从您的服务中发送广播,并且如果活动处于前台,它会捕获该广播。 –

回答

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 我是新上的计算器,告诉我,如果我做错了什么...... 我希望我帮助!祝你好运

0

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

相关问题