代码注册广播

package com.example.broadcast001;

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

public class MainActivity extends Activity
{

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

//为哪个广播  注册什么样的过滤器????
        MyReceiver myReceiver = new MyReceiver();//广播
        IntentFilter intentFilter = new IntentFilter("ACTION");//过滤器
        //IntentFilter intentFilter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");

       //intentFilter.addAction(action);
        //intentFilter.addCategory(category);
        //intentFilter.addDataType(type);
        //注册广播的方法在ContextWrapper中,所以要在activity里注册
       registerReceiver(myReceiver, intentFilter);
        findViewById(R.id.button1).setOnClickListener(new OnClickListener()
        {
           
            @Override
            public void onClick(View v)
            {

                  //发广播就这样
                    Intent intent=new Intent("ACTION");
                    //IntentFilter intentFilter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
                    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.activity_main, menu);
        return true;
    }

}

广播类

package com.example.broadcast001;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.widget.Toast;

public class MyReceiver extends BroadcastReceiver
{
    public MyReceiver()
    {
     }
    @Override
    public void onReceive(Context context, Intent intent)
    {

                String action = intent.getAction();
                Toast.makeText(context, action, Toast.LENGTH_LONG).show();
    }
}

/manifest.xml注册广播

<!--广播注册--> 

<manifest>  

<receiver android:name=".SmsBroadCastReceiver"> 

     <intent-filter android:priority="2000"> 

             <action android:name="android.provider.Telephony.SMS_RECEIVED"/> 

     </intent-filter> 

  </receiver> 

  </application> 

  <uses-sdk android:minSdkVersion="7" /> 

 

    <!-- 权限申请 --> 

<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission> 

</manifest>  

 

 

 

  两种注册类型的区别是:

1)第一种不是常驻型广播,也就是说广播跟随程序的生命周期(代码注册广播)。

   2)第二种是常驻型,也就是说当应用程序关闭后,如果有信息广播来,程序也会被系统调用自动运行(manifest.xml中注册广播)。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值