<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
主页面
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
private String type = "top";
private String key = "dbedecbcd1899c9785b95cc2d17131c5";
private String path = "http://v.juhe.cn/toutiao/index?type=" + type + "&key=" + key;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView listView = findViewById(R.id.listView);
//通过代码动态注册广播监听网络状态
NetWorkBroadstReceiver receiver = new NetWorkBroadstReceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
registerReceiver(receiver,intentFilter);
}
//定义广播监听网络状态
private class NetWorkBroadstReceiver extends BroadcastReceiver{
//重写接收广播的方法
@Override
public void onReceive(Context context, Intent intent) {
boolean b = NetWorkUtils.isNetWork(context);
if(b){
Toast.makeText(context, "有网", Toast.LENGTH_SHORT).show();
//获取网络数据
getSerVerData();
}else{
Toast.makeText(context, "没网", Toast.LENGTH_SHORT).show();
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setIcon(R.mipmap.ic_launcher);
builder.setTitle("提示");
builder.setMessage("请求设置网络");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
startActivity(new Intent(android.provider.Settings.ACTION_DATA_ROAMING_SETTINGS));
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.show();
}
}
}
private void getSerVerData() {
//获取网络数据
MyAsyncTask task = new MyAsyncTask();
//执行异步任务
task.execute(path);
}
//耗时操作
private class MyAsyncTask extends AsyncTask<String,Integer,String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected String doInBackground(String... parmas) {
String uri = parmas[0];
//把接口地址包装成网络地址
try {
URL url = new URL(uri);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(5000);
conn.setReadTimeout(5000);
if (conn.getResponseCode()==200){
InputStream inputStream = conn.getInputStream();
ByteArrayOutputStream ao = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
while ((len=inputStream.read(buffer))!=-1){
ao.write(buffer,0,len);
}
inputStream.close();
ao.close();
String json = ao.toString();
return json;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
//更新UI
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Log.i(TAG, "onPostExecute: "+s);
Gson gson = new Gson();
Bean bean = gson.fromJson(s, Bean.class);
List<Bean.ResultBean.DataBean> list = bean.getResult().getData();
}
}
}
`判断是否有网
public class NetWorkUtils {
//判断是否有网
public static boolean isNetWork(Context context){
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
//得到网络信息
NetworkInfo info = cm.getActiveNetworkInfo();
if(info!=null){
return info.isAvailable();
}
return false;
}
}
`_
<><><><><><><><>
建立Bean类 创建适配器