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 に答える