Intent&BroadcastReceiver例子
一个BroadcastReceive例子代码如下:
package com.luohaibo.testdemo10; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; public class HelloBroadcastReceiver extends BroadcastReceiver { private Context context; @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub this.context = context ; showNotification(intent); } private void showNotification(Intent intent){ NotificationManager notificationManager = (NotificationManager) context. getSystemService(Context.NOTIFICATION_SERVICE); Notification notification = new Notification(R.drawable.ic_launcher, intent.getExtras().getString("content"),System.currentTimeMillis()); PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, new Intent(context, MainActivity.class), 0); notification.setLatestEventInfo(context, intent.getExtras().getString("content"),null , pendingIntent); notificationManager.notify(R.layout.activity_main,notification); } }
main函数代码:
package com.luohaibo.testdemo10; import java.security.PublicKey; import android.os.Bundle; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; import android.view.View.OnClickListener; public class MainActivity extends Activity { private Context mContext; private Button btnSendButton; private TextView etBroadcastContent; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mContext = this; btnSendButton = (Button)findViewById(R.id.btn_sendBroadcast); btnSendButton.setOnClickListener(new SendBroadcastClickListener()); etBroadcastContent = (TextView)findViewById(R.id.et_broadcastContent); } private class SendBroadcastClickListener implements OnClickListener{ @Override public void onClick(View v) { // TODO Auto-generated method stub String content = etBroadcastContent.getText().toString().trim(); if (content.length()<1) { Toast.makeText(mContext, etBroadcastContent.getHint(),1).show(); return; } Intent intent = new Intent(); intent.setAction("com.luohaibo.action.BroadcastReceiverTest"); intent.putExtra("content", content); sendBroadcast(intent); } } @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; } }
布局文件如下:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <EditText android:id="@+id/et_broadcastContent" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="请输入广播内容" /> <Button android:id="@+id/btn_sendBroadcast" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="发送广播" /> </LinearLayout>
效果示意图: