시나리오가 있습니다. 내 응용 프로그램이 오프라인 일 때, 서버에 보내야하는 데이터베이스의 일부 정보를 저장 중입니다. 그래서 네트워크를 사용할 수있을 때 나는 API 호출에 의해 그것들을 보내고 싶다. 네트워크를 사용할 수있을 때마다 메소드를 호출 할 수있는 방법이 있습니까 ??Android에서 네트워크를 사용할 수있을 때마다 메소드를 호출하는 방법은 무엇입니까?
-1
A
답변
0
브로드 캐스트 리시버를 만듭니다
<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