【发布时间】:2014-09-30 07:37:41
【问题描述】:
大家好,我是 android 新手,也许这个问题对你来说太愚蠢了。 我正在开发我的第一个 android 应用程序,我正在做一个检查连接服务状态的方法。一切正常,但我想做的是,当连接状态从“未连接”切换到“已连接”时,我想重新加载或更新或召回我的主要活动,以便更新我的数据,从我的服务器下载应用程序。这是我的代码:
仅适用于 BroadcastReceiver 的 Java 类:
public class NetworkStateReceiver extends BroadcastReceiver {
private static final String TAG = "NetworkStateReceiver";
@Override
public void onReceive(final Context context, final Intent intent) {
Log.d(TAG, "Network connectivity change");
if (intent.getExtras() != null) {
final ConnectivityManager connectivityManager =(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
final NetworkInfo ni = connectivityManager.getActiveNetworkInfo();
if (ni != null && ni.isConnectedOrConnecting()) {
Log.i(TAG, "Network " + ni.getTypeName() + " connected");
} else if (intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, Boolean.FALSE)) {
Log.d(TAG, "There's no network connectivity");
}
}
}
}
清单中“应用程序”标签中的片段:
<receiver android:name="com.example.findmyclients.NetworkStateReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
</intent-filter>
</receiver>
通过调试,我已经看到一切正常,日志是由 java 类中的“onReceive”方法编写的,但是如果我尝试回忆我的活动,我的应用程序崩溃:(我能做些什么来解决??谢谢你们这么多。
【问题讨论】:
-
崩溃 => LogCat。请。
-
如何回忆你的主要活动?
-
@2Dee 我粘贴的这段代码没有提供任何崩溃,但是当我尝试放置通常的代码来调用活动时(Intent intent = new Intent...,startActivity(intent);)在真正的陈述中:if (ni != null && ni.isConnectedOrConnecting()) 应用程序崩溃,日志中出现 Java 空指针异常。
-
@HarshaVardhan 观看 2Dee 的评论
-
试试这个...在 mainactivity 中有广播接收器,当你在 Activity 中有任何更新时。刷新视图。
标签: java android android-activity broadcastreceiver