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

2023-11-29

@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();方法..


在执行 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) of WebServiceCall class,

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

Note:不要忘记将权限放入清单文件中,

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在android中的asynctask中检查互联网连接 的相关文章

随机推荐

  • Maven + Surefire 在测试失败时返回代码为 0

    我有一个项目 测试分为单元阶段和集成阶段 我让它运行 buildbot 问题是即使在测试失败时 maven 返回代码也是 0 所以 buildbot 构建是成功的 这是 mvn 集成测试的结果 Results Tests in error
  • 将自定义 UIButton 添加到 UIKeyboard 的 UIWebView 附件视图

    我需要添加一个相机按钮UIWebView的键盘附件视图工具栏 已经具有 后退 下一步 和 完成 按钮的工具栏 是否有捷径可寻 我仍在寻找更好的方法来做到这一点 但目前的一个解决方案是销毁该栏并重新创建它 如下所示 void viewDidL
  • 应用程序脚本 - function () { [本机代码] }

    我正在制作一个谷歌应用程序脚本 我正在尝试制作一个可以读取第一个 callendar 事件的程序 问题是 当我尝试从中获取任何内容时 它只会写 function 本机代码 我看过一些为 javascript 编写的问题 但我不明白如何将 j
  • 如何触摸画布?

    这里是颤振新手 我目前正在尝试使用 Flutter 构建一个简单的触摸绘图应用程序 但无法弄清楚如何触发画布重新绘制 我所拥有的是这样的 我有一个 CustomPaint 小部件 其中包含一个 GestureDetector 子部件 每当发
  • 标准流的输入流/输出流 - Java

    我的理解是 字符流和字节流在C内部工作FILE stream C世界中的标准流是FILE stdin FILE stdout FILE stderr 输入流 and 输出流正在为文件 管道等资源提供子类 输入流 and 输出流api文档不讲
  • C++ 中的返回类型

    include
  • 不使用 intdiv() 的大数整数(64 位)除法(php7 之前)

    测试是在64位系统下进行的 php7有一个很好的功能 intdiv 下面的代码可以完美运行 number 0x7fffffffffffffff result intdiv number 62 结果是148764065110560900 其余
  • Java 8 SSLContext.getInstance("TLSv1.2") 是什么意思?

    我正在尝试为某个端点 URL 调用 REST API 它对于 java net 的 URL 运行良好 并且在执行相同的操作后 但在某些机器上 它因某些 SSLException 而失败 因此代码被修改如下 HttpsURLConnectio
  • Azure 共享访问签名 - 签名不匹配

    我收到此错误
  • 绘制重叠柱形图或条形图

    我需要使用柱形或条形类型将 4 个系列数据绘制到 MSChart 我可以绘制这 4 个系列 以便数据重叠而不是堆叠 我刚刚发现有一个ChartGroup OverlapOffice Excel 的属性 我该如何在 MSChart 中做到这一
  • Java:如何控制JPanel的宽高比?

    我有一个 JPanel 我想保持正方形 但我希望它的大小能够填充其父 JFrame 中可能的最大空间量 但保持正方形 即它采用 JFrame 的最短边作为正方形宽度 我搜索过网络 检查了所有布局管理器 似乎没有一个可以简单地解决这个非常简单
  • 需要更新SQLite中某列的值

    我需要对列中所有行的列值求反 我尝试使用以下查询来执行此操作 但它没有更新任何行 sqliteDatabase rawQuery UPDATE SQL TABLE NAME SET COL 1 COL 1 null 其中COL 1 col
  • 条件 WHERE 语句 SQL Server

    我想创建一个 SP 来返回所有Country行 除非CountryID作为参数提供 这是我想象的它可能的工作方式 但它不喜欢它 ALTER PROCEDURE dbo usp return countries CountryID AS IN
  • HTML5 将加密的视频帧绘制到画布(带有clearkey的加密媒体扩展)

    我正在尝试使用 Javascript 将 HTML5 视频元素中的帧绘制到画布 其中视频 webm VP9 已使用 Clearkey 加密 我正在使用 EME 在 Chrome 中解密它 使用 EME 加密媒体扩展 时 Chrome gt
  • 检测我何时在页面顶部滚动 UIWebView

    我想在我的 webview 顶部添加一个 URL google 栏 并像 Safari 一样通过向上滚动我的网页来访问它 为此 我将检测用户何时滚动页面 以及何时滚动到达顶部 但我实在不知道怎么办 一个主意 非常感谢 Martin 我也在挖
  • 如何在 Perl 中解析 XML 并创建树结构

    我正在解析 XML 文件XML Simple 有没有办法从 XML 中获取树形形式 如果是这样 请举例说明或建议 CPAN 包 我想知道之后我必须处理哪个标签column等等 标签没有顺序 这column标签可以出现在Table or di
  • 用于检索各种日期范围内的 SUM 的 SQL 查询

    我有一个表格 其中包含有关已售产品 客户 购买日期和已售单位摘要的信息 我想要得到的结果应该是 4 行 其中前三行是一月 二月和三月 最后一行是这 3 个月内未售出的产品 这是桌子 http imageshack us a img823 8
  • 不能对承诺式任务调用 Start。异常即将到来

    我正在创建一个简单的 wpf 桌面应用程序 UI 只有一个按钮和 cs 文件中的代码 例如 private void Button Click 2 object sender RoutedEventArgs e FunctionA publ
  • 随机数类内初始化

    我目前正在创建一个类 我希望每次创建对象时都用随机数初始化其中一个私有成员 下面的代码不会产生任何问题 private unsigned random rand 10 不过 我想使用 C 11 随机引擎和发行版来执行此操作 我希望能够按照以
  • 如何在android中的asynctask中检查互联网连接

    Override protected void onCreate Bundle savedInstanceState TODO Auto generated method stub super onCreate savedInstanceS