`

解决Android runOnUiThread android.os.NetworkOnMainThreadException

 
阅读更多

我在android  webview和前台的js交互时,使用了

 

 runOnUiThread(new Runnable() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                HttpApiClient api = new HttpApiClient();
                String ValidityDate;
                try {
                    ValidityDate = api.validate(mobile);
                    Log.i("id", mobile);
                    Log.i("ValidityDate", ValidityDate);
                    Intent intent = new Intent();
                    intent.putExtra("id", mobile);
                    intent.setClass(IndexActivity.this, LoginActivity.class);
                    IndexActivity.this.startActivity(intent);
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                    wView.loadUrl("javascript:setMsg('手机号码错误,请重新输入!')");
                }
            });

 

结果在android4.0以上系统报错:

03-24 10:42:12.748: W/System.err(14686): android.os.NetworkOnMainThreadException

 

解决办法:

 

new Thread(new Runnable() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                HttpApiClient api = new HttpApiClient();
                String ValidityDate;
                try {
                    ValidityDate = api.validate(mobile);
                    Log.i("id", mobile);
                    Log.i("ValidityDate", ValidityDate);
                    Intent intent = new Intent();
                    intent.putExtra("id", mobile);
                    intent.setClass(IndexActivity.this, LoginActivity.class);
                    IndexActivity.this.startActivity(intent);
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                    wView.loadUrl("javascript:setMsg('手机号码错误,请重新输入!')");
                }
            }

        }).start();

 

0
1
分享到:
评论

相关推荐

    android.os.NetworkOnMainThreadException

    文章目录android.os.NetworkOnMainThreadException问题分析查阅资料解决方案知识要点: RunOnUiThread 和 new Thread(new Runnable()).start() 的区别先说一下 RunonUiThread这时候就需要使用 handler来处理消息 ...

    android 带动画进度条.rar

    4. **线程同步**: 由于UI更新必须在主线程中进行,因此需要确保在后台任务完成后,将进度更新的操作放在Handler或者runOnUiThread()中执行。 5. **兼容性**: 虽然这个功能主要针对Android 5.0及以上版本,但若希望...

    Android 进度条对话框Demo.zip

    更新UI(包括进度条)必须在主线程中进行,因此需要确保进度更新的方法是通过Handler、runOnUiThread()或使用异步任务的onProgressUpdate()方法调用。 9. **注意点** - 记得在不需要显示进度条时及时关闭,避免...

    安卓开发-Android 烟花效果源码.zip.zip

    同时,为了保证UI安全,需要在`runOnUiThread()`或`postInvalidate()`等方法中更新界面。 4. **随机数生成**:烟花的发射方向、速度、颜色等可以使用随机数生成器来实现,以增加效果的随机性和多样性。`java.util....

    Android 体重计算源码.rar

    `Activity`或`Fragment`类中的`runOnUiThread()`或`Handler`可以用来确保UI更新在主线程中进行,遵循Android的多线程规则。 7. **通知与提醒**:为了鼓励用户定期记录体重,应用可能包含闹钟或通知功能。这需要用到...

    android全局对话框dhk.rar

    在Android应用开发中,全局对话框(Global Dialog)是一种重要的设计模式,它允许开发者在任意活动(Activity)或fragment中显示对话框,而无需在每个组件中单独处理。全局对话框通常用于显示系统通知、用户提示或者...

    Android progress前台运算.zip

    在Android应用开发中,"Android progress前台运算"这个主题主要关注的是如何在用户界面上显示进度条或进度对话框,以便在执行耗时操作(如网络请求、文件下载或大量数据处理)时提供良好的用户体验。这涉及到Android...

    Android WeatherForecast应用源码.rar

    【Android WeatherForecast应用源码】是一个专门为Android平台开发的天气预报应用程序。该源代码提供了学习和理解Android应用开发,特别是与天气数据展示相关的功能模块的绝佳机会。通过深入研究这个项目,开发者...

    Android 滑动翻页源码.zip

    【Android 滑动翻页源码】是一个用于Android应用开发的组件,它实现了类似书籍翻页效果的界面滑动切换。这种效果通常用于电子书阅读器、画廊应用或者任何需要平滑过渡效果的场景。在Android开发中,滑动翻页可以提升...

    Android_Toast用法.docx

    在Android开发中,`Toast`是一个非常常用的组件,它用于短暂地显示一些简短的信息,通常用来提示用户一些操作的结果或者提供一些简单的帮助信息。在Android应用开发中,`Toast`有多种用法,可以满足不同的展示需求。...

    Android倒计时实现.txt

    根据给定文件的信息,本文将详细介绍如何在Android应用中实现定时器功能,特别是倒计时功能。这包括了定时器的基本概念、定时器在Android中的使用方法、倒计时的具体实现方式以及一些实用技巧。 ### 定时器基本概念...

    安卓Android源码——ToastSample.rar

    但在异步任务或其他线程中创建`Toast`时,应确保在`Handler`或`runOnUiThread`中执行,以避免出现线程问题。 7. **自定义布局与动画** 在高级应用中,`ToastSample`可能包含自定义布局的实现,例如添加按钮或其他...

    android 媒体键监听 以及 媒体键模拟

    在Android开发中,媒体键监听和模拟媒体键盘的实现是两个重要的功能,它们涉及到系统级事件处理和自定义用户交互。下面将详细讲解这两个概念及其实现。 首先,媒体键监听是指应用程序能够捕获并响应系统中的媒体键...

    Android 秒表源码.rar

    使用`runOnUiThread()`或`Handler`的`post()`方法将更新UI的任务调度到主线程。 9. **持久化数据**:如果应用在后台被杀死或用户离开,秒表状态应能恢复。这可以通过`SharedPreferences`来实现,将当前时间值保存在...

    安卓Android源码——MyImageSwitch.rar

    在这个`Android`源码压缩包中,`MyImageSwitch`可能包含了自定义视图类、布局文件、资源文件以及相关的业务逻辑代码。现在我们将深入探讨一下在安卓应用开发中创建自定义图片切换控件的相关知识点。 1. **自定义...

    [毕设季 android开发]第六讲:Android线程及UI更新

    在Android应用开发中,线程管理和UI更新是至关重要的部分,因为Android系统为每个应用程序分配一个主线程,也称为UI线程。主线程主要负责处理用户界面的交互,包括绘制和更新视图。然而,执行耗时的操作(如网络请求...

    android 后台服务.ppt

    import android.os.IBinder; public class RandomService extends Service{ @Override public IBinder onBind(Intent intent) { return null; } } ``` - **解释**: - 导入必要的包。 - 定义一个名为`...

    带暂停功能倒计时TimeCountDown盒子适用_android暂停功能代码.zip

    - 为了保证用户界面的实时更新,通常需要在`onTick`回调中使用`Handler`或者`runOnUiThread`来更新UI组件(如TextView),因为Android的UI操作必须在主线程中执行。 8. **使用自定义计时器**: - 在Activity或...

    Android 主线程Exception解决方案Demo

    当开发者违反这一规则时,系统会抛出`Android.os.NetworkOnMainThreadException`,提示主线程异常。 针对这个问题,Android提供了一些解决方案来确保网络请求等耗时操作不在主线程中执行。以下是几种常见的处理方式...

Global site tag (gtag.js) - Google Analytics