你可能认为这个问题是重复的,但我仍然没有在其他帖子中找到答案
我有一个名为“Update”的服务类,并在服务中分隔名为“SyncData”的线程类。我需要在服务类的onCreate()方法中运行SyncData线程。当线程开始运行时,它只运行一次,它应该将字符串值返回到Service onCreate()方法。但在我的情况下,它总是在Service onCreate()方法中使用null。但是我通过放置日志在Thread类中看到了相同的数据字符串。
在许多不同的帖子中,我看到将数据从线程传递到活动或者由处理程序在线程之间传递数据。我没有看到任何从帖子到服务类发送数据的帖子。
有人可以帮我解决这个问题。
谢谢!
答案 0 :(得分:0)
你做不到。因为如果你生成一个新线程,onCreate方法返回不等待线程完成。另一方面,您无法阻止它,否则您将阻止ui线程并导致ANR错误
答案 1 :(得分: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.