首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

一个线程开的socket。在其他线程里 如何访问?报输出流空指针.

2013-01-23 
一个线程开的socket。在其他线程里 怎么访问?。报输出流空指针.。1、一个线程开的socket。在其他线程里 怎么访

一个线程开的socket。在其他线程里 怎么访问?。报输出流空指针.。
1、一个线程开的socket。在其他线程里 怎么访问?。
new Runnable(){
             public void run()
             {........................
                          if( mPrintWriterClient!=null)
               { mPrintWriterClient.print(ComMsg);   
                 mPrintWriterClient.flush();
                 DataChanged = 0;
               }
               else{;}
          }}
               };//这个PrintWriter mPrintWriterClient 永远为空
报 runtime error 输出流空指针异常。怎么办,求指教。。谢谢~~~

2.一个线程开的socket。在实现重力感应的接口里不能 访问 socket。也是输出量 空指针异常。
class   ?????   implements SensorEventListener
 {    public void onSensorChanged(SensorEvent event) {//这个方法里不能访问socket
                            ............
                             mPrintWriterClient.print(ComMsg);   
                         mPrintWriterClient.flush();
                            .........
                                     }
     这两句都 抛 mPrintWriterClient 空指针异常,得不到,我那些 变量 全部都是 activity的成员变量。
           非常感谢~~~
[解决办法]
Handler  你看看这个。。。。
[解决办法]
你确定在访问线程开启之前,socket连接上了吗?mPrintWriterClient赋值了吗?
[解决办法]
应该是线程同步的问题吧。 

new Runnable(){
             public void run()
             {
........................
                          if( mPrintWriterClient!=null)
                { mPrintWriterClient.print(ComMsg);    
                  mPrintWriterClient.flush();


                  DataChanged = 0;
                }
                else{;}
          }}
               };/
[解决办法]

引用:
引用:
你确定在访问线程开启之前,socket连接上了吗?mPrintWriterClient赋值了吗?
1. 请问 如果一个线程new 的socket 能被 其他线程访问么?

2. 问题就应该在初始化 那里。。也就是 new socket线程还没有建立,其他线程或者重力感应接口 就已经初始化了,那个时候 怎么控制这个 互斥?
谢谢~~


我做过一个类似的,是这么做的:在主线程里先初始化socket,mPrintWriterClient,然后开启要访问mPrintWriterClient的子线程,然后注册重力监听器,这个过程放到Activity的onResume()方法里面,然后在onPause()方法里面解除重力监听器。不知道这样符不符合你的需求。

热点排行