0

私は自分の Android サービスを実行することに行き詰まっており、本当に助けが必要です。

サービスをバインドする方法に関する Vogella のチュートリアルから始めて、問題を解決するために頭に浮かんだほとんどすべてのアプローチと Web を試してみました。メイン アクティビティの「onStart()」が呼び出され、例外 (インテントの作成、「bindService()」) はスローされません。ただし、サービスも開始されません (apiService == null)。

動作させるのは難しいことではないことはわかっていますが、残念ながら、すでに 2 時間以上この問題に取り組んでいます。どんな種類のヘルプ、ポインタなども本当に感謝しています。

[編集] サービス クラスに設定されたブレークポイントはヒットしません。また、Log.d() エントリは Logcat に出力されません。

Android.Service を拡張し、独自のインターフェイスを実装するサービス:

public class APIService extends Service implements APICall{ 
private final IBinder binder = new APIBinder();
@Override
public void onCreate() {
    super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId){
    super.onStartCommand(intent, flags, startId);
    return Service.START_NOT_STICKY;
}
@Override
public IBinder onBind(Intent intent) {
    return binder;
}
public class APIBinder extends Binder{
    public APIService getService(){
        return APIService.this;
    }
}
//implementation of Interface...

主なアクティビティ / サービスのバインディング:

public class MainActivity extends Activity {
private APIService apiService = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}
 @Override
 protected void onStart() {
    super.onStart();
    Intent serviceIntent = new Intent(this, APIService.class);
    bindService(serviceIntent, apiServiceConnection, Context.BIND_AUTO_CREATE);
 };
@Override
protected void onDestroy(){
    super.onDestroy();
    unbindService(apiServiceConnection);
}
private ServiceConnection apiServiceConnection = new ServiceConnection(){
    public void onServiceConnected(ComponentName className, IBinder binder) {
        APIBinder localBinder = (APIBinder)binder;
        apiService = localBinder.getService();
    }
    public void onServiceDisconnected(ComponentName className) {
        apiService = null;
    }
};
//click handler, etc...

マニフェスト ファイルのエントリ:

<service android:name=".APIService"/>
4

1 に答える 1