@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(); //
}
如果互联网不可用,我想打开警报,还要检查响应是否有时间。显示它是否可行?帮助我。我的asynctask代码是新的 GetVideoUrlAsyn()。execute(); 方法..
答案 0 :(得分:8)
在执行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;
}
}
在callhttppost_numvaluepair(URL, nameValuePairs)
类的方法WebServiceCall
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
注意:强> 不要忘记将权限放在清单文件中,
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
答案 1 :(得分:1)
您应该使用其他SO答案中提到的广播接收器,但由于您已经问过如何执行此操作,请转到此处:
* Checks for an existing network connectivity
*
* @param context
* The {@link Context} which is needed to tap
* {@link Context#CONNECTIVITY_SERVICE}
* @return True if network connection is available
*/
public static boolean isNetworkAvailable(Context context) {
ConnectivityManager connectivity = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
return false;
} else {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
}
return false;
}
需要在清单文件中指定其他权限
答案 2 :(得分:0)
在执行asyncTask之前检查互联网
if(checkNetwork)
{
new GetVideoUrlAsyn().execute();
}
else
{
// do stuff
}
答案 3 :(得分:0)
if(CheckNetwork){
new GetVideoUrlAsyn().execute();
}else{
// Check internet connection
}
和
private boolean CheckNetwork() {
ConnectivityManager conMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if (conMgr.getActiveNetworkInfo() != null
&& conMgr.getActiveNetworkInfo().isAvailable()
&& conMgr.getActiveNetworkInfo().isConnected()) {
return true;
} else {
return false;
}
}