Google Android Maps‘İ Threadler İle Kullanmak
-
Mevzuyu stackoverflow a sordum cevap alamadım belki burda Android Maps ile uğraşan müritlerimiz vardır bir de burda şansımı deniyim. Şimdi hocalar amacım map çalışırken belli aralıklarla MySQL bağlantısı kurarak websitemin database ine koordinat bilgilerini göndermek. Map tek başına çalışıyor, webservice ile yaptığım MySQL bağlantısı da tek başına sorunsuz çalışıyor. Fakat ikisini beraber kullanmaya çalıştığımda onLocationChanged fonksiyonu içinde database bağlantı fonksiyonumu çağırdığımda uygulama çöküyor. Sebebinin bağlantı fonksiyonunun, Map fonksiyonunu durdurmaya zorlaması olduğunu düşünüyorum çünkü bağlantı foksiyonu kendi içinde başka bir classı başlatıyor. Bunu da Thread'lerle çözebileceğimi düşündüm şöyle birşey geliştirdim fakat bu da çalışmadı. Sebebini anlayabilen ya da daha tecrübesine dayanarak yorumlayabilecek birileri var mıdır ? Program açıldığında exec.java çağırılıyor;
exec.java
public class exec{
public static void main(String[] args){
ThMap rc =newThMap();
Thread th0 =newThread(rc); th0.start();
}}ThMap.java
import android.app.Activity;
import android.content.Intent;
public class ThMap extends Activity implements Runnable{
public void run(){
Intent intent =new Intent(this,Map.class); startActivity(intent);
}} -
şu şekil düzenle bi bakalım.. şuan java yok bu makinede o yüzden bakamadım tam..
import android.app.Activity; import android.content.Intent; public class ThMap extends Activity implements Runnable{ Handler handler = new Handler(Looper.getMainLooper()); public void run(){ handler.post(new Runnable() { @Override public void run() { Intent intent = new Intent (ThMap.this, Map.class); startActivity(intent); } }); }}
unbalanced tarafından 15/May/14 17:17 tarihinde düzenlenmiştir -
Yok hocam yine durduruldu diyip kapandı. Intent ile ulaşmaya çalışmak doğru mu bilmiyorum çünkü bu ulaşmaya çalıştığım Map classının constructor ı yok. Başlatan fonksiyon ne onu da bilmiyorum tam olarak OnCreate() olabilir o da Activity classından garip bi parametre oluyor ne olduğunu bilmediğim için öteki yerde çağıramıyorum.
protected void onCreate(Bundle savedInstanceState) {
.....
}
-
hocam android class ı intent ediyorsun de mi.. yani activitysi olmayan bir şeyi yapıyorsan sıknıtı var..
yok normal ise, kurucu metod ile ilgili bi şey değil, kodun olduğu yerde sağ tıklayıp implement functions mu ne onu bularak activity nin temel fonksiyonlarını implement et class a, sonra hepsine break point koyup debug ettir bakalım.. nerede çöküyor görürsün sonra da hata mesajına bi bak ne diyor.. arkadaş gelecek şimdi yoksa daha fazla yardımcı olmak isterdim
-
Sağolasın hocam
-
Intent intent =new Intent(this,Map.class);
Satırında this contexti belirtir ve sen ui main thread olmayan bir thread içinden context olarak this'i gönderirsen çöker. Çözümü şöyle;
THMap classında bir değişken yarat
Context context = this;
Daha sonra bu context'i threada parametre olarak geç this yerine bu contexti gönder.
Intent intent =new Intent(context,Map.class);
gibi.