いくつかの可能性があります:
- Service は brodcast( sendBroadcast ) を送信できます。アクティビティは、サービスに実装されている broacastReceiver を登録するだけで済みます。そんな感じ:
あなたのサービス:
Intent intent=new Intent(getApplicationContext(),WebResults.class);
intent.setAction("com.toxy.LOAD_URL");
intent.putExtra("url",uri.toString());
sendBroadcast(intent);
あなたの活動:
private class Receiver extends BroadcastReceiver {
@Override
public void onReceive(Context arg0, Intent arg1) {
String url = arg1.getExtras().getString("url");
WebView webview =(WebView)findViewById(R.id.webView);
webview.loadUrl(url);
}
このリンクはあなたを助けることができます: http://www.vogella.com/articles/AndroidBroadcastReceiver/article.html
2 番目の方法は、サービスにリスナーを登録し、サービスでそのリスナーに通知することです。
あなたのサービスで:
void onSomethingHappened()
{
activityListener.notifyProgressBar();
}
void subscribe(YourInterface listener)
{
actibityListener = listener;
}
あなたの活動では、サービスを開始した後:
service.subscribe(this);
ただし、より良い解決策を得るには、サービスの実装 (タイプ) を考慮する必要があります。
AndroidServiceに関するこのリンクは役に立ちます。