从异步服务更新活动

时间:2010-04-02 17:39:54

标签: android asynchronous service android-activity

我已经实现了一项服务,可以在我的应用程序和谷歌文档之间进行异步同步。我希望在同步完成后更新我的应用程序的顶级活动。但是,由于该服务,应用程序可能处于未知状态。是否有办法制作顶级活动,无论可能是什么,都可以从服务中的asynchtask重新创建自己。

3 个答案:

答案 0 :(得分:2)

在您的服务中,只需致电startActivity(new Intent(this, TopLevelActivity.class))即可。这将启动TopLevelActivity(如果它尚未运行),或者调用TopLevelActivity的onNewIntent()方法(如果它已在运行),并将其置于顶部。如果您想收到通知,可以覆盖onNewIntent()并捕获意图。

答案 1 :(得分:2)

我认为,正确的方法是使用AIDL使用远程接口: https://developer.android.com/guide/components/aidl.html

您创建一个带有界面的简单*.aidl文件,Android工具将为您生成Interface类。它将允许您注册回调方法。比抛出startActivity来回更清洁。

答案 2 :(得分:2)

您应该从服务广播一个Intent,然后让Activity成为广播接收者。

以下是对BroadcastReceiver的撰写。

希望这有帮助。