2011-06-21 4 views
1

についてLocal Service SampleについてILocalService.javaで宣言されたメソッドの定義に成功しましたが、これらの呼び出し方法はわかりませんアクティビティのonServiceConnected()の外部にあるメソッド。私はonServiceConnected()内からそれらを呼び出すことができますが、これはあまり使われていないようです。私はそれに限定されていますか?ここに私のILocalService.javaです:ローカルサービスインスタンスを使用してILocalService.javaインタフェースで宣言されたonServiceConnected()以外のメソッドを呼び出す方法

/************************************************************************************************** 
* Filename: ILocalService.java 
* Project name: Local Service Sample 
* Application name: Local Service 
* Description: This file contains an example interface for LocalService 
**************************************************************************************************/ 

package com.marie.localservicesample; 

public interface ILocalService { 

    public LocalService getService(); 

    public int getStatusCode(); 
} 

私の仮定は、私は私のILocalService.javaで宣言されたメソッドを呼び出すことができるはずということです。これらの呼び出しは、LocalService.javaにバインドされたアクティビティによってから onServiceConnected()に限定されるべきではありません。どうすればいい?

答えて

1

serviceConnectedメソッドの外部でサービス参照を使用する場合。主にnullpointerexceptionをスローします。

アクティビティにボタンを作成し、onClickでサービス参照を使用しようとします。 少なくとも10秒間ボタンをクリックします。それは正常に動作します。

これは、サービスがローカル参照変数にバインドするのに時間がかかることを示します。 ServiceConnectedメソッドは、サービスが接続されて使用可能になったことを通知するためにのみ使用されます。

serviceConnectedメソッドの外部で適切なサービスを使用するためです。 serviceConnectedメソッドでbooleanフラグを維持できます。

フラグ値の利用サービスに基づいてどこでも、あなたはこれが私の知る限りで

をしたいです。

希望します。

+0

回答ありがとうございます。私はそうするかもしれない。しかし、今私のために働く解決策を見つけたと思う。 – Marie

+0

素晴らしい:)。より良い答えが見つかった場合は、それも投稿してください。他の人も利益を得ることができます – Javanator

+0

@ジャバント私は8時間のような自分の質問に答えを投稿させません。しかしここに私が見つけたものがあります:もし私が "private ILocalService mBoundService = null;"としてmBoundServiceを宣言すれば次に、onServiceConnected()に次のように割り当てます。 "mBoundService =(ILocalService)service;"次に、ローカルのサービスにバインドされたアクティビティのどこからでもILocalService.javaで宣言されたメソッドを呼び出すことができるServiceインスタンスを取得します。しかし、あなたの答えは良いと思いますので、私はそれを受け入れて投票します。あなたが私の質問を好きなら、私はあなたに投票してもらうことができますか? – Marie

関連する問題