0

PowerManager.goToSleep(...) が呼び出されたことへの応答として、システムによって時々破棄されるアクティビティがあります。動作に一貫性がなく、その理由がわかりません。

コードの最も関連性の高い部分である私のアクティビティの onCreate に関連するコードは次のとおりです。

   protected void onCreate(Bundle bundle) {
        super.onCreate(bundle);

        requestWindowFeature(android.view.Window.FEATURE_NO_TITLE);

        IntentFilter userprsentfilter = new IntentFilter(Intent.ACTION_USER_PRESENT);
        mUserPresentReceiver = new UserPresentReceiver();
        registerReceiver(mUserPresentReceiver,userprsentfilter);

        Log.d(TAG, "created.");
    }

    protected void onDestroy() {
        Log.d(TAG, "finished.");
    }

どこかで、遠隔地の奉仕で、時には活動そのものによって、

PowerManager.goToSleep(SystemClock.uptimeMillis())

が呼び出され、アクティビティが破棄されます。

PowerManager.goToSleep が呼び出されたときに、システムが時々アクティビティを破棄しようとする理由を明らかにしてください。また、アクティビティがシステムによって破壊される可能性を確実に、または低くする方法はありますか? これが起こったとき、リソースは不足していないと確信を持って言えます。

4

1 に答える 1

3

すべての Android アプリは、いつでもシャットダウンされる可能性があります。これは、アプリがバックグラウンドになっている場合、システム リソースを大量に消費している場合、または電話がスリープ状態になっている場合に発生する可能性があります。その動作を変更することはできません (変更しようとするべきではありません)。これは、意図的に、非常に正当な理由で行われます。

このような状況で実行を継続する必要がある操作がある場合は、それをサービスとして実装する必要があります。これにより、電話がスリープ状態でも実行できます。

于 2012-07-05T14:25:21.100 に答える