0

API を使用して保留中のインテントからブロードキャストを受信するために使用されるブロードキャスト レシーバーがありますrequestLocationUpdates
メソッドで受け取ったコンテキストにonReceive(..)は、呼び出しアクティビティのすべての UI 要素とオブジェクトが含まれています (ウォッチ ウィンドウを使用して確認できます)。
これらの UI 要素またはコンテキスト内に含まれるオブジェクトにアクセスする方法/方法はありますか?

ここにスニペットがあります:

MainActivity {
   //Initialize a pending intent         
   locationmanagerobject.requestLocationUpdates(provider,0,0,pendingintent); 
   //registering broadcast reciver
} 

broadcastReciverClass { 
   onReceive(Context context, Intent intent) { 
       /*I want to gain access to the objects of the main Activity. I can
         see them in context if I use the watch window to monitor the 
         context object. I want to find a way to be able to access them and use them*/ 
   } 
}
4

1 に答える 1

0

メイン アクティビティのオブジェクトにアクセスする必要があるのはなぜですか? より良いアーキテクチャ上の決定ができ​​るかどうか疑問に思っているので、私は尋ねています。アクティビティは意図的にモジュール化されています。

ブロードキャストの受信時に MainActivity の UI コンポーネントを更新する場合は、次のようにします。

  • BroadcastReciverClass からメッセージをブロードキャストし、受信者を MainActivity に登録して、それに応じて更新します。

  • メッセージの受信時に共有/シングルトン クラスのデータを変更し、onResume() メソッドの MainActivity で適切な UI 変更を行います。

于 2013-08-08T16:05:38.160 に答える