2012-03-04 4 views
2

私はAndroidアプリ開発の先駆者であり、Java開発における私の経験も最小限です。Androidでカスタムイベントとイベントリスナーを定義する方法は?

私は非常に基本的なコンテキスト認識アプリケーションを開発しています。カスタムイベントのアクティビティクラスにどのように通知することができますか? (onClick()とは異なります)。だから私はいくつかのリソースを監視する責任があるクラスを持っている場合。 (簡単にするために、時間を監視し、Activityクラスに1時間ごとに通知するTimerクラスを想定しましょう)。

アクティビティクラスはどのようにして「購読」し、Timerクラスからそのようなイベントを聞くことができますか?

いくつかのコード例と、Android/Javaでのイベント処理の仕組みを提供していただければ幸いです。あなたの時間と助けてくれてありがとう!システムやアプリケーション/カスタムイベントのリスナーを通知する

答えて

4

使用Broadcastインテントを...

(新しいブロードキャストレシーバーを作成するには...カスタムイベントが発生するたびsendBroadcast方法を使用して

Intent intent = new Intent(NEW_Intent); 
intent.putExtra(“Test”,Test1); 
sendBroadcast(intent); 

Broadcastを送信あなたのイベント/ブロードキャストを聴く)、BroadcastReceiverクラスを拡張し、onReceiveイベントハンドラをオーバーライドします。onReceiveメソッドは、Broadcastインテントが受信されたときに実行され、r受信機を登録する。

いずれかのマニフェストファイルまたはコードであなたのレシーバを登録し

...

// XMLで

<receiver android:name=”.ReceiverName”> 
<intent-filter> 
<action android:name=”com.paad.action.NEW_INTENT”/> 
</intent-filter> 
</receiver> 

//コードで..

IntentFilter filter = new IntentFilter(NEW_INTENT); 
ReceiverName r = new ReceiverName(); 
registerReceiver(r, filter); 
+0

私はブロードキャストレシーバの登録についてよく知っています。私はそれらの両方(XMLとコード)を追加しなければならないと思った。しかし、あなたはこれらのプロセスのいずれかを行うことができることを発見しました。 NEW_Intentはどこからでも利用できるはずです。だから、あなたもそれを追加してもらえますか? –