Я работаю над приложением на основе местоположения, которое определяет местоположение пользователя и извлекает данные на основе местоположения с веб-сайта. Я могу создать приложение для успешного определения местоположения пользователя, и я даже могу создать приложение для извлечения и анализа данных HTML с помощью Jsoup. Теперь я попытался объединить оба, но приложение вылетает.
Я читал из других сообщений, что создание нового потока для HTTP-запросов решит проблему, но я не могу понять, где его создать в программе и запустить поток.
Я попытался создать поток в функции onCreate и запустить его в LocationListener, как это, но все еще не работает.
при создании
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();
}
}
};
Прослушиватель местоположения
Thread mythread = new Thread(runnable);
mythread.start();
Вот структура моего кода
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();
}
}
}
Я хотел бы сохранить этот исполняемый поток в отдельной функции, чтобы он вызывался только при изменении местоположения.
Могу ли я получить некоторую помощь для этого? заранее спасибо
обновление – 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
<uses-permission android:name="android.permission.INTERNET"/>
- person Will Jamieson   schedule 18.06.2014