アプリを作っています。アプリは 5 つのアクティビティでインターネットを必要としますが、他の 4 つのアクティビティではインターネットは必要ありません。
インターネットが必要なアクティビティには、CRUD を実行し、DB と通信するために Web サイトに httppost を実行する必要があるため、インターネットが必要です。そのため、現時点では onCreate で、このようなインターネット接続を確認しています
ConnectionDetector cd = new ConnectionDetector(getApplicationContext());
Boolean isInternetPresent = cd.isConnectingToInternet(); // true or false
if(isInternetPresent)
Log.e("Internet available","Internet available");
//Do httpPost logic here
else
Log.e("Internet not available","Internet not available");
//Tell the user that he needs internet
接続検出器
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
public class ConnectionDetector {
private Context context;
public ConnectionDetector(Context context) {
this.context = context;
}
public boolean isConnectingToInternet() {
ConnectivityManager connectivity = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity != null) {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null)
for (int i = 0; i < info.length; i++)
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
return false;
}
}
しかし、onCreate の後はどうでしょうか。ユーザーがアクティビティに入り、onCreate でチェックに合格し、フォームに入力した後、インターネットから切断された場合はどうなりますか。この部分を確認するにはどうすればよいですか?そして、現在のコードでそれを実装するにはどうすればよいですか? そのため、最初の要件で、インターネット接続を常にチェックする必要がありました。しかし、それはcbrulakが指摘したようにバッテリーを消耗します