シナリオは私のアプリケーションがオフラインのときに保存しています。サーバーに送信する必要のある情報をデータベースに保存しています。だからネットワークが利用可能なときに私はそれらをApiの呼び出しで送信したい。ネットワークが利用可能になるたびにメソッドを呼び出す方法はありますか?Androidがネットワークを利用できるようになるたびにメソッドを呼び出す方法は?
-1
A
答えて
0
broadcastReceiverを作成します。
<receiver android:name=".packagename.InternetBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.ACTION_SHUTDOWN" />
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
</intent-filter>
</receiver>
0
/// BROADCAST RECEIVER CLASS
public class UpdateReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent arg1)
{
boolean isConnected = arg1.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
if (isConnected) {
} else {
//FETCH YOUR DATA FROM SQLITE
//CALL API
}
}
}
/// ANDROID MANIFEST CODE
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<receiver android:name="com.example.welcome.nkew.UiUtils.UpdateReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
+0
ご回答いただきありがとうございます。それは私をたくさん助けた –
利用放送受信機 –
を
をし、マニフェストファイルに登録し、あなたがアンドロイドNプレビューをターゲットに設定している場合、放送受信 –
を使用する必要があります。受信者は、Googleによって制限された制限に従って動作しません。リンク:https://developer.android.com/preview/features/background-optimization.html#connectivity-action – crashOveride