android应用程序中的数据连接识别

时间:2015-10-29 10:03:46

标签: android database sqlite

我创建了一个应用程序。

在那个应用程序中,我想通过互联网向某个人发送消息。 如果网络不可用,则消息必须存储在本地数据库中,当互联网连接恢复时,消息必须自动发送而不点击任何刷新或同步选项(如Whatsapp信使)。

该流程是否有任何特定代码?

请帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

为了达到您的要求,您需要不断检查互联网连接。

因此,我建议您使用 BroadcastReceiver

当连接到达或松散时,广播接收器用于事件。

您可以通过将该事件注册到项目中来检查该事件,但请记住,只要根本不需要,就需要取消注册。

例如,您应该尝试link

希望这个答案可以解决你的问题。

答案 1 :(得分:0)

您可以使用 BroadcastReceiver

AndroidManifest

中使用此接收器
<receiver android:name=".NetworkUpdateReceiver" >
    <intent-filter>
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
    </intent-filter>
</receiver>

您的 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);
    }
}