首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >很遗憾,应用程序在检查网络时被停止

很遗憾,应用程序在检查网络时被停止
EN

Stack Overflow用户
提问于 2013-03-21 19:50:36
回答 3查看 31K关注 0票数 19

我正在使用以下代码通过我的应用程序检查互联网连接

代码语言:javascript
复制
public class ConnectionChangeReceiver extends BroadcastReceiver
{
  @Override
  public void onReceive( Context context, Intent intent )
  {
    ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService( Context.CONNECTIVITY_SERVICE );
    NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();
    NetworkInfo mobNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE );

    if (activeNetInfo != null)
    {
        Toast.makeText( context, "Active Network Type : " + 
                       activeNetInfo.getTypeName(), Toast.LENGTH_SHORT ).show();
    }
    if(mobNetInfo != null)
    {
        Toast.makeText( context, "Mobile Network Type : " + 
                          mobNetInfo.getTypeName(), Toast.LENGTH_SHORT ).show();
    }
  }
}

并且我已经在清单文件中定义了所需的权限。

每当我尝试使用F8密钥断开/连接网络时,我都会收到“不幸的应用程序已停止”,并且我在logcat中没有得到任何打印。

我能知道我正在做的错误是什么吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-21 19:58:01

备注:如果你的目标是android N预览。上面的接收器将不会按照Google的约束条件工作。

链接:https://developer.android.com/preview/features/background-optimization.html#connectivity-action

用法:用于相同的WorkManager或JobScheduler

你在AndroidManifest.xml中添加了这个吗?

代码语言:javascript
复制
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

如果你已经添加了上面的代码,那么检查下面的代码:

代码语言:javascript
复制
<receiver android:name=".UpdateReceiver" >
    <intent-filter>
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
    </intent-filter>
</receiver>

代码语言:javascript
复制
public class UpdateReceiver 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", "Connected" + isConnected);   
          else 
              Log.i("NET", "Not Connected" + isConnected);
    }
}
票数 65
EN

Stack Overflow用户

发布于 2016-05-06 15:07:38

上面的代码对于wi-fi连接不能正常工作。这是修改后的

简单的一个

。androidmanifest.xml

代码语言:javascript
复制
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

androidmanifest.xml的内部应用程序标记

代码语言:javascript
复制
<receiver android:name="android.YOUR-JAVA-CLASS-PATH.BackgroundSync" android:enabled="true">
      <intent-filter>
          <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
      </intent-filter>
</receiver>

BackgroundSync.java

代码语言:javascript
复制
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager; 
import android.util.Log;
import android.widget.Toast;

public class BackgroundSync extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) { 
        ConnectivityManager cm =(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        if (cm.getActiveNetworkInfo()!=null){
            Toast.makeText(context, "Connected to Internet", Toast.LENGTH_LONG).show();
        }
        else Log.i("INTERNET","---------------------> Internet Disconnected. ");
    }
}
票数 6
EN

Stack Overflow用户

发布于 2017-07-05 12:04:57

如果Android 7.0 (API级别24)和更高版本的应用程序在其清单中声明广播接收器,则它们不会收到此广播。如果应用程序将其BroadcastReceiver注册到Context.registerReceiver(),并且该上下文仍然有效,则它们仍然会收到广播。

https://developer.android.google.cn/reference/android/net/ConnectivityManager.html?hl=zh-cn#CONNECTIVITY_ACTION

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15546712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档