Soru & Cevap

Android try / catch yapısını intent ile kullanmak

16.11.2013 - 11:35

Selamlar, 

Bir projemde bir activity'den digerine bir mesaj göndermem gerekiyor. Olumlu, olumsuz vs. gibi.

Gönderdiğim kısım

Intent i = new Intent(getApplicationContext(), Login.class);
i.putExtra("message", message);
startActivity(i);

Bu mesajı alan activity'de buna göre bir toast basacağım ekrana. Ama bu activity mesaj olmadan da çalışabilir. Bu yüzden getIntent gibi bişey direk kullanamıyorum çünkü uygulama hata veriyor. Yapmak istediğim ise oncreate bölümünde try/catch gibi bir yapı kullanıp, eğer başka bir activity'den buraya bir mesaj geliyorsa ona göre bir işlem yapmak eğer gelmiyorsa hiçbişey yokmuş gibi uygulamanın çalışmasına devam etmesi.

Yardımcı olur musunuz?

17 Görüntülenme

3 Cevap

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

Profile picture for user rhanayt
rhanayt
18.03.2014 - 01:02

onCreate de Activity'nin getCallingPackage ve getCallingActivity methodlarını kullanabilirsiniz tam emin değilim ama gelen bundleın null olup olmadığına da bakmak lazım olabilir.

picture-8337-1385290534.jpg
erhan.yilmaz
16.11.2013 - 12:01

Ben de şöyle bi çözüm geliştirdim. Mesajı gönderirken şöyle yapıyorum

                    Intent i = getIntent();
                    setResult(100, i);
                    finish();

 

Mesajı aldığım yerde de 

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
           
            if (resultCode == 100) {
               
                Toast.makeText(getApplicationContext(),
                        R.string.islem_tamam, Toast.LENGTH_LONG).show();
                Intent intent = getIntent();
                finish();
                startActivity(intent);
            }

Profile picture for user kiirpisifre
kiirpisifre
16.11.2013 - 11:49

Merhaba ,

Bundle bundle = getIntent().getExtras();

if (!bundle.isEmpty()) {
            if (bundle.containsKey("message")) {
                String message = bundle.getBoolean("message");
               // şeklinde alabilirsin
            }
        }