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>

效果示意图:

posted @ 2014-04-21 18:14  我是不可不戒  阅读(232)  评论(0编辑  收藏  举报