次のコードを実行すると、サービスの値はnullになります。しかし、私がonCreate(ボタンのような)の外側から何かを呼び出すと、それは機能します。宣言後にonCreateでAndroidサービスにアクセスする
これは、ユーザー入力なしでonCreateメソッドからアクセスできます。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
getApplicationContext().bindService(new Intent(ISoundControlService.class.getName()),
serConnSound, Context.BIND_AUTO_CREATE);
try {
soundService.start();
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
UPDATE:サービスを取得 ...
private ServiceConnection serConnSound = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
soundService = ISoundControlService.Stub.asInterface(service);
}
@Override
public void onServiceDisconnected(ComponentName name) {
soundService = null;
}
};
Hmm ..どのようにsoundService変数を初期化しますか? – HighFlyer
詳細は – Jackie