Soru & Cevap

ProgressDialog ekran çevirme problemi

30.06.2014 - 09:50

Merhaba. Uygulamamda ProgressDialog kullanıyorum ama progress dialog işlem yaparken telefonu oynatıp ekranı herhangi bir yere döndürürsem, program bildiğimiz uygulama durduruldu hatasını veriyor. Sorun progress dialog çalışırken ekran oynayınca ikinci progress dialog un devreye girmesi ve durduruldu hatası vermesi. Aktif bir ProgressDialog var ise önce onu dismis nasıl yapabilirim acaba.. Şimdiden teşekkürler

15 Görüntülenme

4 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user AKI
AKI
30.06.2014 - 11:02

Dediğiniz gibi Ahmet bey onDestroy yöntemi ile çözdüm. Çok teşekkür ediyorum.

picture-1372-1408467635.jpg
ahmtbrk
30.06.2014 - 10:49

Şimdi şöyle yapalım kardeşim AsyncTask'ın constructorunda parametre olarak dialog ve context al.

aynı sekilde onPreExecutede o aldığın dialogu başlatacaksın.

Activity'nin onDestroy bloğunda ise o dışardan parametre olarak vereceğin dialogu dismiss et.

bu arada hata ne onuda yazar mısın

Profile picture for user AKI
AKI
30.06.2014 - 10:45

Ahmet bey.. Daha önce de bir sorunumda yardımcı olmuştunuz ve bilgiler çok işime yaramıştı teşekkür ederim.

 

Kullandıgım kod bu. Progress i AsyncTask içinde kullanıyorum.

 

[code]

 

public class haftalik extends ListActivity {

    static final String URL = "";
// XML node keys
static final String KEY_ITEM = "item";
static final String KEY_ID = "id";
static final String KEY_BILGI = "bilgi";
static final String KEY_AD = "ad";

private ProgressDialog pDialog;
ListView lv;
haftalik2 adapter;
 

//@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.haftalik_main);

    
    catalogList= new ArrayList<HashMap<String>>();
    
    new LoadCatalog().execute();     

}
class LoadCatalog extends AsyncTask<String, String, String>   {

        @Override
         protected void onPreExecute() {
             super.onPreExecute();
            
            pDialog = new ProgressDialog(haftalik.this);
            pDialog.setIndeterminate(false);
            pDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
            pDialog.setCancelable(true);
            pDialog.show();
            }

         protected String doInBackground(String... args) {
             XMLParser parser = new XMLParser();
             String xml = parser.getXmlFromUrl(URL); // getting XML from URL
                Document doc = parser.getDomElement(xml); // getting DOM element
                // looping through all song nodes &lt;song&gt;
                for (int i = 0; e < nl.getLength(); i++) {
                    // creating new HashMap
                    HashMap<String, String> map = new HashMap<String, String>();
                    Element e = (Element) nl.item(i);
                    
                    map.put(KEY_ID, parser.getValue(e, KEY_ID));
                    map.put(KEY_BILGI, parser.getValue(e, KEY_BILGI));
                    map.put(KEY_AD, parser.getValue(e, KEY_AD));
                    
                    catalogList.add(map);
                    
                }
                return null;
         }

         
         protected void onPostExecute(String file_url) {

             runOnUiThread(new Runnable() {
                    public void run() {
                        
                        pDialog.dismiss();

                         lv=(ListView)findViewById(android.R.id.list);
                         adapter = new haftalik2(haftalik.this, catalogList);
                         lv.setAdapter(adapter);
                         
                    }
                    });
            }
}
}

[/code]

picture-1372-1408467635.jpg
ahmtbrk
30.06.2014 - 10:03

Telefonu yan çevirdiğinde bir activity baştan çalışmaya başlar yani onCreate olur.Sen onCreate blogunda mı başlatıyorsun dialogu?

Yaşam döngülerini kullanarak bu sorunu çözebiliriz.

onDestroy methodunu override et activity'ne ve içinde dialogu dismiss(); yap öyle deneyelim.