AndroidサービスがOnCreateにバインドされた直後にメソッドを呼び出す

StackOverflow https://stackoverflow.com/questions/3637221

  •  30-09-2019
  •  | 
  •  

質問

Androidサービスが私の終わりになると確信しています。過去数日後、私はほとんど髪が残っていません。

...とにかく、私は脱線します。

最初は、ボタンのオンクリックにサービスをバインドする時間を過ごしていたので、昨日ここで助けからまっすぐになりました。今、私は実際に、アクティビティのOnCreate()メソッドにサービスをバインドしたいと考えています。その部分は問題ありません、意図したとおりに機能します。私のサービスは、実際には、TCPソケットを私が書いたソケットサーバーに接続するソケットサービスです。バウンドサービスmboundservice.startsocketserver()からボタンクリック内のメソッドを通話した場合、ビンゴはうまく機能します。しかし、アクティビティがロードされるとすぐにこれを起動する必要があるため、アクティビティのoncreate()メソッド内でbindservice()を呼び出します。 oncreate()内部のソケットを起動するために呼び出しを配置すると、フォースクローズが表示されます。

この方法(StartSocketServer())が新しいスレッドを生成し、そのスレッドのソケットをリモートマシンに開きます。問題は、アクティビティが完全にロードされる前の新しいスレッド生成にあると推測しています...確かではありません。

ここでは、LogCatはかなり不可解です。スレッドアタッチが失敗したことについて何かを言ってから、その中に「java.lang.nullpointerexception」が原因で有手なハンドラー例外を示します。

繰り返しになりますが、ボタンクリック内のメソッドにこの呼び出しを入れた場合、business in business、oncreate()に失敗した場合、アクティビティ内に何らかの方法がありますか(私の仮定は完全に必要であると仮定していると思います新しいスレッドを産む前にロード)は、htmlで:ala body.onload()を読み込んだ後にstartsocketserver()を呼び出しますか?

残りの髪を保存するのを手伝ってください:)

ティア

役に立ちましたか?

解決

私があなたに書いたように 以前の質問:

fwiw、bindservice()は非同期です。 ServiceConnectionでOnServiceConnected()が呼び出されるまで、バウンド接続はありません。

あなたの中で bindService() 電話、あなたはaを供給しています ServiceConnection 物体。そのオブジェクトはで呼び出されます onServiceConnected() サービスの使用準備ができたら。とりわけ、それはおそらくあなたが住んでいる場所です mService. 。あなたの電話をかけます StartSocketServer()onServiceConnected().

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top