Android サービスがあり、それをアクティビティにバインドし、破棄時にバインドを解除しました。問題は、アプリケーションが閉じられたときに何もない状態で起動することです。デバイスの電源を入れると、突然、トースト メッセージが原因で起動することがあります。コードに行きましょう...
作成時のアクティビティ
Intent intent = new Intent(this, Sincronizacao.class);
this.bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
this.startService(intent);
mConnection のコード
private ServiceConnection mConnection = new ServiceConnection() {
public void onServiceConnected(ComponentName className, IBinder service) {
serviceBound = true;
localBinder = (LocalBinder<Sincronizacao>) service;
}
public void onServiceDisconnected(ComponentName className) {
serviceBound = false;
localBinder = null;
}
};
そして破壊すると
@Override
protected void onDestroy() {
super.onDestroy();
if (serviceBound && mConnection != null) {
unbindService(mConnection);
}
Intent intent = new Intent(this, Sincronizacao.class);
stopService(intent);
localBinder = null;
}
私のサービスでは、onStartCommand が実装されています。そこで、Web サービスにクエリを実行し、データベースにデータを挿入するスレッドを開始します。スレッドには while(true) があり、サービスの onDestroy メソッドを中断するだけです...
編集:
これがマニフェスト行です
android:name="com.company.package.service.Sincronizacao" />
しばらくの間、このバグで苦労しています。助けていただければ幸いです。
ありがとう、