我正在开发一个基于位置的应用程序,它可以检测用户的位置并根据网站上的位置提取数据 . 我能够创建一个应用程序来成功获取用户位置,我甚至可以创建一个应用程序来使用Jsoup来提取和解析HTML数据 . 现在我尝试将两者结合起来,但应用程序崩溃了 .

我从其他帖子中读到,为HTTP请求创建新线程将解决问题,但我无法理解在程序中创建它的位置并启动线程 .

我尝试在onCreate函数中创建一个线程并在LocationListener中启动它,但仍然似乎不起作用 .

onCreate

Runnable runnable = new Runnable() {  
    @Override
    public void run() { 
        Document doc;  
        try {                                              
            doc = Jsoup.connect("http://google.com/").get();
            String title = doc.title();                    
            tv.setText(title);                       
        }
          catch (IOException e)
            {                          
                e.printStackTrace();                           
             }
    }

};

LocationListener

Thread mythread = new Thread(runnable);
    mythread.start();

Here is the structure of my code

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    // some content
    }

  public class MyLocationListener implements LocationListener
  {

  @Override
  public void onLocationChanged(Location loc)
  {       


       try { 
             // block of code to get user location
            }

       catch (IOException e) {
    // TODO Auto-generated catch block
            e.printStackTrace();
         }
       }
}

我想将这个可运行的线程保存在一个单独的函数中,以便仅在存在位置更改时才调用它 .

我能为此得到一些帮助吗?提前致谢

update - Logcat

06-17 17:05:37.027: I/dalvikvm(14034): Could not find method org.jsoup.Jsoup.connect, referenced from method com.example.loc_update.MainActivity$1.run
06-17 17:05:37.027: W/dalvikvm(14034): VFY: unable to resolve static method 8726: Lorg/jsoup/Jsoup;.connect (Ljava/lang/String;)Lorg/jsoup/Connection;
06-17 17:05:37.027: D/dalvikvm(14034): VFY: replacing opcode 0x71 at 0x0002
06-17 17:05:37.062: W/dalvikvm(14034): threadid=11: thread exiting with uncaught exception (group=0x419002a0)
06-17 17:05:37.062: E/AndroidRuntime(14034): FATAL EXCEPTION: Thread-11600
06-17 17:05:37.062: E/AndroidRuntime(14034): java.lang.NoClassDefFoundError: org.jsoup.Jsoup
06-17 17:05:37.062: E/AndroidRuntime(14034):    at com.example.loc_update.MainActivity$1.run(MainActivity.java:112)
06-17 17:05:37.062: E/AndroidRuntime(14034):    at java.lang.Thread.run(Thread.java:856)
06-17 17:05:37.282: D/libEGL(14034): loaded /system/lib/egl/libEGL_mali.so
06-17 17:05:37.307: D/libEGL(14034): loaded /system/lib/egl/libGLESv1_CM_mali.so
06-17 17:05:37.312: D/libEGL(14034): loaded /system/lib/egl/libGLESv2_mali.so
06-17 17:05:37.312: D/(14034): Device driver API match
06-17 17:05:37.312: D/(14034): Device driver API version: 10
06-17 17:05:37.312: D/(14034): User space API version: 10 
06-17 17:05:37.312: D/(14034): mali: REVISION=Linux-r2p4-02rel0 BUILD_DATE=Tue Oct 16 15:37:13 KST 2012 
06-17 17:05:37.372: D/OpenGLRenderer(14034): Enabling debug mode 0
06-17 17:05:46.847: I/Choreographer(14034): Skipped 566 frames!  The application may be doing too much work on its main thread.
06-17 17:05:48.527: I/Process(14034): Sending signal. PID: 14034 SIG: 9