Android:どのように交換やコミュニケーションオブジェクト地域でのサービス?
-
20-09-2019 - |
質問
ここまでのクラスのための簡単な現地サービスです。いきたいと思いる 送信要求 この地域でのサービス 異なるヌ 私の願います。のパラメーターによりこれらのご要望のサービスで接続すHttpClientるウェブサーバを受けるものとするJSONObjectのです。すべてのHTTP通信を行っている間に活動してしまいましたが、まず私がで 走行には別のスレッドは私の地元のサービス ます。
ソースコードの非常に単純なローカルサービスのようになりますか
// BackgroundService.java
package com.test.localservice;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;
public class BackgroundService extends Service
{
@Override
public void onCreate() {
super.onCreate();
Log.i("BackgroundService", "onCreate()");
Thread thr = new Thread(null, new RunThread(), "BackgroundService");
thr.start();
}
class RunThread implements Runnable
{
public void run() {
Log.i("BackgroundService", "run()");
/* Here the HTTP JSON communication is going to happen */
//BackgroundService.this.stopSelf();
}
}
@Override
public void onDestroy()
{
Log.i("BackgroundService", "onDestroy()");
super.onDestroy();
}
@Override
public void onStart(Intent intent, int startId) {
Log.i("BackgroundService", "onStart()");
super.onStart(intent, startId);
}
@Override
public IBinder onBind(Intent intent) {
Log.i("BackgroundService", "onBind()");
return null;
}
}
問題は私に直面は今より知識が全くない)、コミュニケーション 活動 <-->地域でのサービス.この通信およびオブジェクトの交換の例は、 リモートサービス を使用 AIDL (AndroidタDefinitonとができる。しかし、いかにこのパスです。私はそのような交換は自分で定義オブジェクトやできない場合には、それかJSONObjectはこのままいくだけでも、単純な文字列の配列う)のものです。
できいてください点の方向、可能であれば簡単に例のオブジェクト交換(両方)に現地サービスです。
よろしくお願いします。
解決
思いを AsyncTask
代わりにご自身のスレッドがこのシナリオ。
贈活動への参照をお BackgroundService
オブジェクトは、オプションがあります。
利用シングルトン、お
BackgroundService
オブジェクトからの静脈などの公共データの委員は、nullingる静参照onDestroy()
).に従って
LocalServiceBinding
APIサンプルを返しますIBinder
るだけのアクセスを提供しますのBackgroundService
オブジェクトです。
からのものと同じJVMに、パスオブジェです。注意するものはなにも過去の成分の生涯(例えば、 Activity
べきではないのキャッシュのシングルトン).