2016-12-01 11 views
0

https://developer.android.com/training/monitoring-device-state/connectivity-monitoring.htmlConnectivityManager.CONNECTIVITY_ACTION放送受信機

ConnectivityManager.CONNECTIVITY_ACTIONは、Androidデベロッパーごとにアンドロイド7.0で静的に動作していないだろうが、それはアンドロイド

+1

ほとんどの場合、ConnectivityManagerは償却されており、他のモデルと同じように新しいモデルでは機能しません。良い例はリサイクルビューアで、これは使用するSDKに応じて異なっています – MNM

+0

私のアプリのネットワーク接続を監視したいのですが、アプリが実行されていなくても何か提案はありますか? – User000

+0

@MNM 'ConnectivityManager'が推奨されなくなりました。また、 'RecyclerView'はプラットフォームの一部ではないため、使用しているプラ​​ットフォームのバージョンによって動作が異なります。これは別のライブラリであり、最終的にどのプラットフォームのバージョンで実行されても、APKにコンパイルされます。 – Karakuri

答えて

1

の古いバージョンでは機能しない理由あなたは、ネットワーク接続を監視する必要はありません。このユースケースではいつでも使用できます。ユーザーがあなたのアプリを使用しているときは、あなたが提供したリンクに従ってネットワークをチェックすることができます。接続していない場合は、JobSchedulerを使用してジョブをスケジュールし、jobInfoBuilder.setRequiredNetworkType(NETWORK_TYPE_ANY)を使用すると、アプリケーションがバックグラウンドになってもネットワークに接続できるときにジョブが実行されます。ジョブは、保留中の変更をアップロードするサービスを起動するだけです。

また、ご使用のケースに合っている場合は、write a SyncAdapterとするだけで簡単に同期をリクエストでき、システムのSyncManagerは適切な場合はSyncAdapterを実行します。

+0

ありがとうございます。私は、放送受信機のようなイベント駆動型を望んでいます。私のアプリでは、インターネットが接続されるたびに(アプリはバックグラウンドではない)通知を受け取ることができます。ジョブスケジューラアプリを使用してインターネット接続の通知をすることはできませんが、私はそれがイベント駆動されたいのですが、時間ベースでジョブをスケジュールします。 – User000

+0

'JobScheduler' APIは、ジョブが時間ベースであることを私に全く示唆していません。たとえあなたのアプリがバックグラウンドにある場合でも、それは問題ではありません。あなたはすぐに接続があるとサーバーにアップロードする必要はありませんか? (あなたがオフラインで仕事をしているという事実は、その質問への答えがノーであることを示唆している) – Karakuri

+0

ありがとう、API> = 21で働いてくれてありがとう。APIをサポートする方法<012 – User000

関連する問題