1

アプリケーションがバックグラウンドになったときにサービスを開始し、アプリケーションがフォアグラウンドになったときにサービスを停止するアプリケーションを 1 つ作成しました。onPause() と onResume() を使用しましたが、すべてのアクティビティで処理する必要があります。そのため、あるアクティビティから別のアクティビティに移動すると呼び出されます。

4

2 に答える 2

3

ブールフラグを使用します。

boolean movingInApp = false;
....
movingInApp = true;
Intent intent...
.....
public void onPause() {
    if(!movingInApp) {
        //start service
    }
}

public void onResume() {
    movingInApp = false;
    //Stop service
}

インテントなどを起動する前にの値movingInAppを true に設定することで、アプリがサービスを開始しないようにすることができます。メソッドの後半で再度 false に設定することを忘れないでくださいonResume()。システムがアプリをバックグラウンドに移行させる場合、これは false になり、サービスが開始されます。

于 2012-09-22T04:53:01.930 に答える
0

onPause() と onResume() を使用しましたが、すべてのアクティビティで処理する必要があります。

「土台」を作ってActivity……

public class MyBaseActivity extends Activity {

    // Put any methods you need here that are common to all of your Activities

}

Activity次に、作成するすべてのクラスのベースを拡張するだけActivityです...

public class ActivityOne extends MyBaseActivity {

    ...

}

このようにして、あなたのActivities意志はすべて、あなたがしなければならないことを自動的に処理します。

于 2012-09-22T05:03:04.453 に答える