0

Broadcast Receiver'dan Main Activity'da yöntemi çağırmak istiyorum. Bu benim MainActivityBroadcastReceiver'dan MainActivity'de çağrı yöntemi - Android

public class MainActivity extends ActionBarActivity { 

     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
     } 

    public void DisplayConn(){ 
     if(isNetworkStatusAvailable(getApplicationContext())) { 

      Toast.makeText(getApplicationContext(), "internet is available", Toast.LENGTH_LONG).show(); 
     } else { 
      AlertDialog.Builder builder = new AlertDialog.Builder(this); 
      builder.setTitle("Error"); 
      builder.setMessage("No Network Connection").setCancelable(false) 

        .setPositiveButton("OK", new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int id) { 
          finish(); 
         } 
        }); 
      AlertDialog alert = builder.create(); 
      alert.show(); 
     } 
    } 
} 

Ve bu, Yani benim BroadcastReceiver

public class ConnectionReceiver extends BroadcastReceiver { 

    public ConnectionReceiver() { 
    } 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     MainActivity myAct = new MainActivity(); 
     myAct.DisplayConn(); 
    } 
} 

olduğu her zaman Yayını benim MainActivity yöntemleri arayacak almak var. Şimdiden teşekkürler.

+0

@ jvpintang: Neden etkinliğiniz içinde yayın kaydettirmiyorsunuz? – dex

cevap

0

ConnectionReceiver sayfasından yerel bir yayın göndermek için LocalBroadcast Manager kullanabilirsiniz. MainActivity'da alıcınızı yerel yayınları almak için kaydedebilirsiniz. Etkinliğiniz tarafından alınacak olan, çağrıldığında yerel bir yayın gönderebilirsiniz. Daha sonra aktivitenizde bu yerel yayını aldığınızda yöntemi çağırabilirsiniz. Bu yayın sadece uygulamanız için yereldir. Yani güvenli de. Burada nasıl kullanıldığını görebilirsiniz: how to use LocalBroadcastManager?.

LocalBroadcastManager, Intents'ın işlemlerinizdeki yerel nesnelere kaydolması ve gönderilmesi için bir yardımcıdır. Bu, global yayınları sendBroadcast (Intent) ile göndermenin birtakım avantajlarına sahiptir. Bunlardan biri, yayınladığınız verilerin uygulamanızı terk etmeyeceğidir. Bu nedenle özel verileri sızdırmak için endişelenmenize gerek yoktur.

İlgili konular