0

您可能认为这个问题是重复的,但我仍然没有在其他帖子中找到答案

我在服务中有一个名为“Update”的服务类和一个名为“SyncData”的单独线程类。我需要在服务类的 onCreate() 方法中运行 SyncData 线程。当线程开始运行时,它将只运行一次,并且应该将字符串值返回给 Service onCreate() 方法。但在我的情况下,它总是在 Service onCreate() 方法中返回 null 。但是我通过放置日志在我的 Thread 类中看到了相同的数据字符串。

在许多不同的帖子中,我看到将数据从线程传递到活动或通过处理程序在线程之间传递数据。我没有看到任何关于将数据从线程发送到服务类的帖子。

有人可以帮我解决这个问题。

谢谢!

4

2 回答 2

0

你不能。因为如果您生成一个新线程,onCreate 方法会返回,而不是等待线程完成。另一方面,您不能阻止它,否则您会阻止 ui 线程并导致 ANR 错误

于 2013-03-13T14:42:33.563 回答
0
Make the String value static and define it in service class.
Eg: 

public class abcd extends service
{
public static String string;
....
.......
... oncreate()
{
Thread t=new Thread(new Otherclass());
t.start();
}
}

Try this . Also be sure to stopservice only after executing thread.
于 2013-03-13T14:51:41.787 回答