Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android 跨應用程序廣播發送接受

android 跨應用程序廣播發送接受

編輯:關於Android編程

廣播作為android的四大組件之一,適用的地方還是很多,多用來特定條件情況下的通知。例如,開機,鬧鈴,電池電量過低等等。但還可以自定義廣播,用來兩個應用程序的通知。

曾經寫的開機自啟動的博客(通過接受系統廣播):Android 開機自啟動示例程序

1、實現界面

\\

 

2、發送廣播的應用程序代碼

broadcastsend這個apk的代碼很簡單,有個按鈕點擊觸發。發送廣播就行了。

 

package com.example.broadcastsend;

import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.app.Activity;
import android.content.Intent;

public class MainActivity extends Activity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				//發送廣播
			    String broadcastIntent = "com.customs.broadcast";//自己自定義
			    Intent intent = new Intent(broadcastIntent);
			    MainActivity.this.sendBroadcast(intent);
			}
		});
	}
}
這個發送的程序當中,在AndroidManifest.xml裡面不用添加什麼。

 

 

3、接受廣播的應用程序代碼

broadcastreceiver這個apk裡面的代碼,肯定要重寫廣播接受的類,就是繼承BroadcastReceiver,重寫onReceive這個方法就行了。

 

package com.example.broadcastreceiver;

import android.app.AlertDialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.view.WindowManager;
public class CustomBroadReceiver extends BroadcastReceiver{
	private static final String ACTION = "com.customs.broadcast";
	@Override
	public void onReceive(Context context, Intent intent) {
		//廣播接受
        if (intent.getAction().equals(ACTION)){
        	AlertDialog.Builder builder = new AlertDialog.Builder(context);
    		builder.setTitle("提示")
    		.setMessage("收到BroadcastSend應用程序的廣播")
    		.setPositiveButton("確定", new OnClickListener() {
				@Override
				public void onClick(DialogInterface dialog, int which) {
					
				}
			})
			.setNegativeButton("取消", new OnClickListener() {
				
				@Override
				public void onClick(DialogInterface dialog, int which) {
					
				}
			});
    		AlertDialog dialog = (AlertDialog) builder.create();
    		dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
    		dialog.show();
      }
	}

}

然後在AndroidManifest.xml裡面添加注冊

 

       <receiver android:name="com.example.broadcastreceiver.CustomBroadReceiver">
           <intent-filter>
                <action android:name="com.customs.broadcast">
           </action></intent-filter>
       </receiver> 

到這裡基本就結束了,是不是很簡單。跨應用程序的廣播接受。

 

4、注意事項

有沒有注意到,我在廣播接受裡面,寫了一個彈出對話框。這個有點特殊,一般是彈不出來對話框。是通過hander傳遞到具體界面顯示的或者其它消息通知。

但我這裡可以實現直接彈出對話框提示。因為我添加了兩樣東西。

a、對話框設置

dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
b、AndroidManifest.xml裡面添加權限

其它代碼就不貼了,也沒什麼代碼,廣播其實很簡單,靈活好用。。。

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved