2012-03-02 3 views
4

私は現在、通常のAndorid-App(サービスなし)をプログラムしています。それは定期的なチェックのためのタイマーを含んでいます。サービスとアプリケーションとの間のサービスやコミュニケーションの面倒を避けるために、もはやフォアグラウンドではなくなっているアプリケーションを存続させる方法があるかどうか自問しています。 現在、私がアプリケーションを「閉じる」とき、それはAndroid OSがそれを殺すことを決めるまで、まだ生きています。この殺害を避ける方法はありますか? "onDestroy"の特定のコマンドや特定のApp-flag? 私のアプリケーションはかなり複雑で、特に通信/バインディングのように複雑さが増すため、サービスを実装したくありません。 「簡単な方法」があるのですか、本当にService + Appを使わなければなりませんか?たぶん、sthのためのアプリケーションを登録するためのトリックがあります。 Android OSがバックグラウンドにいるときにそれを殺しないという副作用を持つ特別なものです。Androidアプリをバックグラウンドで使用してもいいですか?

理解を深めるために編集:ユーザーがそれを望むときにGUIがバックグラウンド(消滅)に入ることができるので、私の質問はフォアグラウンドで永久にアプリケーションのGUIを永続させる方法ではありません。私が望むのは、追加のサービスを必要とせずにタイマーをそのまま維持できることです。

前もってアイデアをありがとうございました!

+0

私はこの記事でこのことを説明しました:http://stackoverflow.com/questions/29799187/android-background-services-and-alarms/29800712#29800712それはサービスとハンドラを使用します。 –

答えて

1

利用可能なものはありません。定期的な作業のためにAlarmManagerを見ることをお勧めします。これは、サービスを使用する必要がないことを意味します。

+1

この問題は、ここで提案されているようなサービスとアラームで解決する必要があります。 – Pyrodante

0

バックグラウンドで利用できるアプリは、頻繁に使用されるアプリをゼロから再起動する必要がないように、アンドロイドOSによるキャッシング対策です。あなたがバックグラウンドで実行しているあなたのアプリを信頼できるようにしたいならば、サービスは正しい解決策です。あなたが探している答えではありませんが、私はキャッシュに生き残るための秘訣を認識していません。もしあれば、私はそれらを推薦することを気にしません。

5

Androidは、OSの殺害選択の性質と市場の断片化によって非常に予測できません。私はそれが重要であるなら生きているものに100%を数えません。しかし、あなたはギャンブルしてかなり成功することができます。 (あなたは何を愛しているからと)

  1. Androidは最初のメモリ豚を殺すために見るように、最小であなたの文字列プールとヒープを維持する「ベストプラクティス」非常に良い使用:これはあなたを助けるものです。
  2. application manifestタグに永続属性を追加します。
  3. 長時間実行されているプロセス、非常に軽い(うまく実装されていれば)、そして最後にこれらを強制終了するように見えるため、実際に自分自身を助けたり、サービスとして実行したり、サービスを実行するには
  4. フォアグラウンドサービスとして実行してサービスを優先します。

これらを実行すると、Androidがアプリケーションを強制終了しない可能性が高くなります。

関連する問題