IMAP はあらゆる種類のプッシュ通知をネイティブに提供しますが、Google 拡張機能も提供しないため、自分で実装する必要があります。
1 つの方法はIDLE
リクエストを使用することです。これは、ポーリングを行う安価な方法です。もちろん、アプリが常に実行されているとは期待できないため、バックグラウンド サービスを使用する必要があります。ただし、「常時オン」のサービスは Android のアンチパターンであり、バッテリーの消耗が早く、星 1 つが多くなる可能性があります。さらに、システムはいつでもそれを強制終了することを決定できます。もう 1 つの方法はAlarmManager
、サービスを定期的に開始するために使用することですが、数秒ごとに開始するのも同様に悪いことです。つまり、基本的に振り出しに戻ります: ポーリングです。
もう 1 つの方法は、GCM または同様のサービスを使用してプッシュ通知を取得することです。これにはサーバーが必要であり、サーバーはユーザーの認証情報を持っている必要があります (これは問題になる可能性があります) が、開いた接続を維持し、毎秒 IDLE を送信することに関する実際の制約はありません。Android の場合一方で、プッシュを自分で実装したい場合は、通知を受け取るためにソケットを開いたままにしておく必要があります。システム アプリ (上記を参照) でない場合、これを行うのは非常に簡単ではないため、GCM から離れます。使用する接続はシステム (Google Services フレームワーク) によって管理され、通常のアプリではできないことを実行できます。また、既に存在するため、基本的に無料で入手できます。「くすぐり」と呼ばれる何かをするときに、小さなデータを受け取ります。これらは、ブロードキャスト、Google Play の更新などをトリガーします。
だから、あなたの選択をしてください。または、あきらめて、アカウントを登録し、GMail とそのラベルAndroid APIを使用します。