2013-01-24 3 views
4

BaseAdapter을 확장하는 클래스에서 LocalBroadcastManager을 사용하는 방법에 대한 답변을 찾으려고했으나 조사를하면서 시간을 보냈다가 올바르게 답변을 찾지 못했습니다. 내 어댑터 내에서 Fragment 메서드를 호출해야하지만 어떻게 해야할지 모르겠다. 누군가 내가 어떻게해야하는지 설명 할 수 있습니까? 답변과 도움에 감사드립니다.Android : 사용 방법 LocalBroadcastManager

답변

4

LocalBroadcastManager에 대해서만 답변 할 수 있습니다. 분명히 Add support library to your SDK and then to your Android project.

    1. 는 등
    2. , 자바 클래스의 지원 라이브러리를 가져올 당신의 LocalBroadcastManager 및 인스턴스를 선언합니다. 또한 정적으로 선언하고 전체 (전체) 앱에서 사용할 수 있습니다. 그래서 당신은, 인스턴스 등 등 모든 활동에 대한 새로운, 모든 활동에서

      public static LocalBroadcastManager mBroadcaster; 
      mBroadcaster = LocalBroadcastManager.getInstance(yourAppContextHere); 
      
    3. , 서비스를 가지고 등록하고 수신기 각 라이프 사이클의에 따라 등록을 취소하지 않습니다. 각 수신기는 다른 필터를 가질 수 있습니다.

      Intent sendCmdIntent = new Intent("your.package.name.your.action.name"); 
      sendCmdIntent.putExtra(key, value); 
      mBroadcaster.sendBroadcast(sendCmdIntent); 
      
      
      private BroadcastReceiver localBluetoothReceiver = new BroadcastReceiver() { 
          @Override 
          public void onReceive(Context context, Intent intent) { 
           String action = intent.getAction(); 
           Do whatever depending on the action and on the extra stuff you put in the intent. 
      

    모든이가에서 인용 : onResume (또는에서 onCreate)와 onPause (또는들의 OnDestroy) 예 :

    IntentFilter mFilter = new IntentFilter(MY_ACTION_1); 
    mFilter.addAction(MY_ACTION_2); 
    
    mBroadcaster.registerReceiver(localBluetoothReceiver, mFilter); 
    mBroadcaster.unregisterReceiver(localBluetoothReceiver); 
    

    그리고 마지막으로, 방송을 전송하고 수신기로 수신 기억, 그것을 자유롭게 편집해라!

  • +0

    정말 감사드립니다. 정말 도움이됩니다. 다시 감사합니다. – Martin

    +0

    쉬워 진 것보다 ... 몇 시간 동안 망할 도서관을 추가하려했는데 아직도 망할 수업을받지 못했습니다. –

    +0

    @ElectricCoffee 마침내 그것을 관리 했습니까? – Radu

    관련 문제