gpt4 book ai didi

android - 如何在android中的asynctask中检查互联网连接

转载 作者:太空狗 更新时间:2023-10-29 15:47:21 24 4
gpt4 key购买 nike

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.videoview);


mVideoView = (VideoView) findViewById(R.id.videoView1);
scanCode = getIntent().getExtras().getString("ScanCode");


new GetVideoUrlAsyn().execute();


mVideoView.setOnCompletionListener(new OnCompletionListener() {

@Override
public void onCompletion(MediaPlayer mp) {
// TODO Auto-generated method stub

startActivity(new Intent(getBaseContext(),
PostVideoMenuActivity.class));
}
});
}
private class GetVideoUrlAsyn extends AsyncTask<Void, Void,Void> {

@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub

String URL = "http://www.storybehindthestore.com/sbtsws/service/saveinfo.asmx/StoryScanHistorySave";

WebServiceCall webservice = new WebServiceCall();

nameValuePairs = new ArrayList<NameValuePair>(4);

nameValuePairs.add(new BasicNameValuePair("iSiteID","1"));
nameValuePairs.add(new BasicNameValuePair("sVideoURL",scanCode));
Log.e("scancode",""+ scanCode);
nameValuePairs.add(new BasicNameValuePair("sDeviceID",SplashActivity.deviceId));
Log.e("sDeviceID",""+ SplashActivity.deviceId);
nameValuePairs.add(new BasicNameValuePair("sDeviceModel",SplashActivity.deviceModelName));
Log.e("sDeviceModel",""+ SplashActivity.deviceModelName);

responce = webservice.callhttppost_numvaluepair(URL, nameValuePairs);
// Log.e("Stiryscanstorysave responce", responce);

return null;
}

@Override
protected void onPostExecute(Void result) {
// TODO Auto-generated method stub
super.onPostExecute(result);

//progressDialog.dismiss();
if (responce.contains("InCorrect QR Code !")) {

AlertDialog adddrug1 = new AlertDialog.Builder(
VideoActivity.this)
.setTitle("Message")
.setMessage("InCorrect QR Code !")
.setPositiveButton("Ok",
new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog,
int whichButton) {

startActivity(new Intent(getBaseContext(),
HomeActivity.class));
}

}).create();

adddrug1.show();

}else {

StoryScanSaveListGet();
mVideoView.setVideoURI(Uri.parse(scanCode));
mVideoView.setMediaController(new MediaController(VideoActivity.this));
mVideoView.requestFocus();
mVideoView.start();

}
}

@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
/*progressDialog = new ProgressDialog(VideoActivity.this);
progressDialog.setCancelable(false);
progressDialog.show(); */
}


public void StoryScanSaveListGet() {
// TODO Auto-generated method stub

id.clear();
site_id.clear();
store_name.clear();
store_url.clear();
store_phone.clear();
video_count.clear();

try {

JSONObject jmain = new JSONObject(responce);
JSONArray jarray = jmain.getJSONArray("tblCustomer");

JSONObject j_one = (JSONObject) jarray.get(0);

Log.v("Responce", responce);

for (int i = 0; i < jarray.length(); i++) {

j_one = (JSONObject) jarray.get(i);

id.add(j_one.get("id").toString());
site_id.add(j_one.get("site_id").toString());
store_name.add(j_one.get("store_name").toString());
store_url.add(j_one.get("store_url").toString());
store_phone.add(j_one.get("store_phone").toString());
video_count.add(j_one.get("video_count").toString());
}

storeurl =j_one.get("store_url").toString();
storephone = j_one.get("store_phone").toString();
videocount = j_one.get("video_count").toString();
storename = j_one.get("store_name").toString();

Log.i("id", ""+ id);
Log.i("site_id", ""+ site_id);
Log.i("store_name", ""+ store_name);
Log.i("store_url", ""+ store_url);
Log.i("store_phone", ""+ store_phone);
Log.i("video_count", ""+ video_count);


} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
responce = null;
}
}
}

@Override
protected void onPause() {
// TODO Auto-generated method stub
Log.d("tag", "onPause called");
super.onPause();
stopPosition = mVideoView.getCurrentPosition(); // stopPosition is an
// int
mVideoView.pause();

}

@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
Log.d("TAG", "onResume called");

mVideoView.seekTo(stopPosition);
mVideoView.start(); //
}

hii 我想在互联网不可用时打开警报并检查响应是否超时..这怎么可能???帮助我..这是我的异步任务代码,它是新的 GetVideoUrlAsyn().execute(); 方法..

最佳答案

在执行 AsyncTask 之前检查网络连接,

if(isNetworkAvailable(this))
{
new GetVideoUrlAsyn().execute();
}

这是方法定义,

    public boolean isNetworkAvailable(Context ctx)
{
ConnectivityManager cm = (ConnectivityManager)ctx.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnectedOrConnecting()&& cm.getActiveNetworkInfo().isAvailable()&& cm.getActiveNetworkInfo().isConnected())
{
return true;
}
else
{
return false;
}
}

WebServiceCall 类的方法 callhttppost_numvaluepair(URL, nameValuePairs) 中做类似的事情,

HttpParams basicparams = new BasicHttpParams();
URI uri = new URI(url);
HttpPost method = new HttpPost(uri);
int timeoutConnection = 60000;//set your timeout period
HttpConnectionParams.setConnectionTimeout(basicparams,
timeoutConnection);
DefaultHttpClient client = new DefaultHttpClient(basicparams);
//and then rest of your code

注意:不要忘记将权限放在 list 文件中,

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

关于android - 如何在android中的asynctask中检查互联网连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15287660/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com