Android--BroadcastReceiverの使用
6743 ワード
BroadcastReceiverは、システムおよびアプリケーションからのブロードキャストを受信するために使用される「ブロードキャスト受信者」という意味です.Androidシステムでは、例えば起動が完了するとシステムが放送を生成し、この放送を受信すると起動サービスの機能を実現することができる.ネットワークの状態が変化すると、システムはブロードキャストを生成し、このブロードキャストを受信すると、データの提示や保存などの操作をタイムリーに行うことができる.バッテリの電力量が変化すると、システムはブロードキャストを生成し、このブロードキャストを受信すると、電力量が低いときにユーザーに進捗状況をタイムリーに保存するように通知することができます.Androidの放送メカニズムは非常に優れており、開発者が直接操作する必要があることが多く、放送を待つだけで自分に伝えることができ、開発の作業量と開発サイクルを大幅に削減しています.アプリケーション開発者としては、Androidシステムが提供する開発の利器を把握する必要があります.それはBroadcastReceiverです.
BroadcastReceiver簡単に使用
最初のステップは、まず私たちが完成する効果を見てみましょう.新しいプロジェクトを作成し、activityを作成し、ボタンを追加して、作成したブロードキャストクラスにブロードキャストを送信します.
ステップ2で作成したMyReceiverコードは次のとおりです.
ステップ3では、activityページのボタンにイベントを追加し、ボタンはMyReceiverにメッセージを送信します.
4つ目はMyreceiverに登録する必要がありますAndroidManifest.xmlでアプリケーションラベルの下にある場合、
ステップ5では、コードを実行し、receiverがメッセージを正常に受信しました.
BroadcastReceiverの登録とログアウト
この時点でAndroidManifestを削除するとxml,BroadcastReceiverの構成では,通信がうまくいかない.(上のステップ4)
詳細については、以下を参照してください.http://blog.csdn.net/liuhe688/article/details/6955668動的バインドと解除の使用法を終了します
第一歩は、ページに2つのボタン【バインド】、【バインド解除】を追加します.
第2のステップは、ボタンに時間を増やす方法であり、コードは以下の通りである.
コアコード32-49行は、それぞれ送信、バインド、デバインド、3つの操作の使い方です.
バインドとバインド解除の操作が完了しました.
BroadcastReceiver簡単に使用
最初のステップは、まず私たちが完成する効果を見てみましょう.新しいプロジェクトを作成し、activityを作成し、ボタンを追加して、作成したブロードキャストクラスにブロードキャストを送信します.
ステップ2で作成したMyReceiverコードは次のとおりです.
package com.example.learnbroadcastreceiver;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
System.out.println(" ");
}
}
ステップ3では、activityページのボタンにイベントを追加し、ボタンはMyReceiverにメッセージを送信します.
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.button1:
sendBroadcast(new Intent(this, MyReceiver.class));
break;
}
}
4つ目はMyreceiverに登録する必要がありますAndroidManifest.xmlでアプリケーションラベルの下にある場合、
<receiver android:name=".MyReceiver" android:enabled="true" android:exported="true">
</receiver>
ステップ5では、コードを実行し、receiverがメッセージを正常に受信しました.
BroadcastReceiverの登録とログアウト
この時点でAndroidManifestを削除するとxml,BroadcastReceiverの構成では,通信がうまくいかない.(上のステップ4)
詳細については、以下を参照してください.http://blog.csdn.net/liuhe688/article/details/6955668動的バインドと解除の使用法を終了します
第一歩は、ページに2つのボタン【バインド】、【バインド解除】を追加します.
第2のステップは、ボタンに時間を増やす方法であり、コードは以下の通りである.
package com.example.learnbroadcastreceiver;
import android.app.Activity;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
public class MainActivity extends Activity implements OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.button1).setOnClickListener(this);
findViewById(R.id.button2).setOnClickListener(this);
findViewById(R.id.button3).setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.button1:
// sendBroadcast(new Intent(this, MyReceiver.class));
Intent intent = new Intent("com.example.learnbroadcastreceiver.intent.action.MyReceiver");
sendBroadcast(intent);
break;
case R.id.button2:
if(myReceiver == null){
myReceiver = new MyReceiver();
registerReceiver(myReceiver, new IntentFilter("com.example.learnbroadcastreceiver.intent.action.MyReceiver"));
}
break;
case R.id.button3:
if(myReceiver != null){
unregisterReceiver(myReceiver);
myReceiver = null;
}
break;
}
}
private MyReceiver myReceiver = null;
}
コアコード32-49行は、それぞれ送信、バインド、デバインド、3つの操作の使い方です.
バインドとバインド解除の操作が完了しました.