【发布时间】:2013-11-08 04:39:18
【问题描述】:
在我的服务类中,我正在启动一个线程。如果线程类采取任何行动,通知活动的最佳方式是什么?我想通知我的活动类线程已经采取了一些行动。从下面的代码中可以清楚问题
MyService 类 onCreate() 方法
@Override
public void onCreate()
{
super.onCreate();
if (downloadThread == null) {
downloadThread = new DownloadThread(this);
downloadThread.activateUserSession();
downloadThread.start();
}
}
我的下载线程
public void run()
{
while (!isStopRequested) {
if (isSessionActive && downloadNow)
{
downloadNow = false;
informActivity("Download Started");
//do some loading work !!
SystemClock.sleep(10000);
informActivity("Download Finished");
}
SystemClock.sleep(2000);
}
}
当 downloadNow 为 true 等时不要详细说明。我只需要如何通知我的活动下载开始和下载完成。处理程序需要做一些事情。谁能告诉我处理这种情况的最佳方法。
【问题讨论】:
-
您是使用 Intent 启动服务还是绑定到它? (您应该具有约束力。)
-
我正在通过意图从 Application 类启动我的服务并将服务绑定到我称之为 MainActivity 的活动
-
我不确定最佳解决方案,但您可以使用处理程序来达到您的目的。
-
是的,我知道,我什至在我的问题中添加了这个。但是如何在我的服务和/或服务类中使用该处理程序来通知我有关事件的活动
-
查看这个例子Bluetooth Chat
标签: android android-service android-handler