本文已参与「新人创作礼」活动,一起开启掘金创作之路。
第一行代码5.2中解决NetworkInfo过时的问题
书中代码段中NetworkInfo打上后显示过时,那我们就直接不用也罢。
我们改为:
ConnectivityManager connectivityManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
if(connectivityManager.getActiveNetwork() != null){
Toast.makeText(context,"Network is available",Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(context,"Network is unavailable:",Toast.LENGTH_SHORT).show();
}
演示效果:
图一是wifi&流量都开,图二是只开流量,图三是都不开。
注:当关掉wifi时会有一瞬间是unavailable,然后接着变成了available
\
第一行代码5.3.1无法接收到自定义广播
在MainActivity中加
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent("com.example.asus.broadcasttest.MY_BROADCAST");
intent.setComponent(new ComponentName("com.example.asus.broadcasttest",
"com.example.asus.broadcasttest.MyBroadcastReceiver"));
sendBroadcast(intent);
}
});
注意工程路径
解决第一行代码第二版7.4自定义内容提供器无法运行
一、问题描述
首先我不是用的模拟器,而是用的手机调试的。将ProviderTest下载到手机端后点击按钮会自动退出程序。
二、解决问题
1.首先排除打错字,注意我们的工程一般会默认加了个用户名,所以凡是写路径的代码都别忘了加个用户名。比如:
//DataBaseTest工程中
public static final String AUTHORITY = "com.example.asus.databasetest.provider";
//ProviderTest工程中
Uri uri = Uri.parse("content://com.example.asus.databasetest.provider/book");
然后就是版本的问题,书中用的
compile 'com.android.support:appcompat-v7:24.2.1'
我用的是
compile 'com.android.support:appcompat-v7:26.0.0-alpha1'
网上有的说是版本的问题,那就先按照版本的问题解决。
2.如果不是打错字的问题,也不是版本的问题,那就是下面我解决的办法。
首先你得运行着DataBaseTest工程,然后再运行ProviderTest工程。也就是如下图所示:
这样在手机端操作ADD TO BOOK就没有啥问题。
点击添加和查询后的Lgcat输出为(把Database中所有的按钮逻辑都注释掉):
更新的数据:
别问我为啥,我也刚学三个星期。反正就是在运行第一个后运行第二个才没有问题。如果有知道的可以在评论区留言哈哈。
顺便说一句,非要说为啥的话,可能是这样(品品这段话,反正我是品不出来哈哈)
\