Пока у меня есть класс для простой локальной службы. То, что я хочу сделать, - , отправляет запросы в эту местную службу от различных видов деятельности в моей заявке. В зависимости от параметров этих запросов служба будет подключаться через HttpClient к веб-серверу и получать JSONObject и возвращать его в действие. Все HTTP-коммуникации уже работают в моей деятельности, но я бы хотел, чтобы запускался в отдельном потоке в моей локальной службе сейчас.Android: Как общаться и обмениваться объектами с помощью локальной службы?
Исходный код моего очень простой местной службы выглядит так до сих пор:
// 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). Однако я не уверен, должен ли я идти по этому пути. Я просто хотел бы обменять мои собственные определенные объекты, или если это невозможно, просто JSONObject, или если это упростит ситуацию, даже простые массивы String будут работать (пока).
Может кто-нибудь указать мне в правильном направлении и, если возможно, дать простой пример обмена объектов (в обоих направлениях) с локальной службой.
Заранее спасибо.
Спасибо. Образец API LocalServiceBinding фактически помог многим. Также AsyncTask был отличным намеком. Для тех, кто нуждается в помощи при потоковой обработке на Android, здесь есть хорошая запись в блоге от разработчиков: http://android-developers.blogspot.com/2009/05/painless-threading.html – znq