You can use a BroadcastReceiver for your purpose.
Use this receiver in AndroidManifest:
<receiver android:name=".NetworkUpdateReceiver" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
Your NetworkUpdateReceiver:
public class NetworkUpdateReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager connectivityManager = (ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE );
NetworkInfo activeNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
boolean isConnected = activeNetInfo != null && activeNetInfo.isConnectedOrConnecting();
if (isConnected){
Log.i("NET", "connecte" +isConnected);
//Perform Message resend here
}
else Log.i("NET", "not connecte" +isConnected);
}
}