在Manifest中注册广播接收器以及接受广播的类型,并通过Activity中的按钮发出广播,通过接收器接受并响应。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.xmlbroadcast"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- 注册广播监听器 -->
<receiver android:name="TestReceiver">
<intent-filter>
<!-- 注明接受广播的类型 -->
<action android:name="android.intent.action.EDIT"/>
</intent-filter>
</receiver>
</application>
</manifest>
TestReceiver类,用来注明接受响应后执行的操作。
package com.example.xmlbroadcast;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
public class TestReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context arg0, Intent arg1) {
// TODO Auto-generated method stub
//Toast to1=null;
//to1.makeText(null,"fuck", Toast.LENGTH_SHORT);
//to1.show();
System.out.print("ReceiveMessage");
//TextView tx1=null;
//tx1=(TextView)findViewById(R.id.txv);
}
}
通过Activity中的按钮发出一个广播
package com.example.xmlbroadcast;
import java.io.*;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView tx1=null;
private Button bt1=null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt1=(Button)findViewById(R.id.btn);
bt1.setOnClickListener(new bt1listener());
tx1=(TextView)findViewById(R.id.txv);
}
class bt1listener implements OnClickListener{
public void onClick(View v) {
// TODO Auto-generated method stub
System.out.print("fuck");
tx1.setText("fuck");
Intent it1=new Intent();
it1.setAction(Intent.ACTION_EDIT);
MainActivity.this.sendBroadcast(it1);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
分享到:
相关推荐
为了接收到短信,需要在Android清单文件中注册一个广播接收器。这是一个专门用于监听短信接收广播的组件,当有短信到达时,系统会发送一个含有短信数据的广播,而广播接收器就会响应这个广播,从而实现监听短信的...
测试这个广播小例子,我们可以创建一个触发广播的按钮,点击后发送广播,然后在广播接收器中处理接收到的广播。 总的来说,Android广播机制提供了一种灵活的消息传递方式,使得应用程序可以在适当的时候做出反应,...
总之,通过监听ACTION_NEW_PICTURE广播,我们可以实现在Android系统中捕获用户使用相机拍照后的事件,进而实现一系列自定义功能,如图片的即时处理、上传等。不过,需要注意不同设备和Android版本可能存在差异,需要...
在这个“Android中采用广播接收者实现短信监控器、拦截外拨电话功能案例”中,我们将探讨如何利用BroadcastReceiver来监控手机中的短信和电话事件。 首先,我们需要创建一个BroadcastReceiver的子类,比如`...
**静态注册广播**则是在AndroidManifest.xml文件中进行的,这样广播接收器即使在应用未运行时也能接收到广播。这种方式适用于需要始终监听特定事件的情况,但缺点是会增加应用的内存占用。在manifest文件中的配置...
3. **创建发送广播的按钮事件**:在Activity中,找到对应的按钮并为其设置点击监听器,当按钮被点击时,发送带有自定义ACTION的Intent。 ```java Button sendBroadcastBtn = findViewById(R.id.send_broadcast_...
动态注册的接收器只在注册时有效,当unregisterReceiver()执行后,接收器将停止工作。这种方式更加灵活,可以控制广播接收的时机,但需要确保在适当的时候注销,以避免内存泄漏。 **短信广播截获** 在Android中,...
广播接收器就像全局事件监听器一样,一旦注册了之后,无论何时,只要与它相匹配的intent被应用程序广播出来,它就会立即执行。 5. service节点:Service作为Android四大组件之一,在每一个应用程序中都扮演着非常...
- 在执行下载任务时注册广播接收器,监听下载完成状态。 需要注意的是,使用DownloadManager下载文件时,需要在Android应用的Manifest文件中添加网络通信权限: ```xml <uses-permission android:name="android....
在Android开发中,广播Receiver是实现跨组件通信的重要机制,它可以监听系统或应用内部的各种事件。本示例探讨了两种广播接收器的注册方式:静态注册和动态注册,以及它们在实际应用中的区别。 1. **动态注册广播...
在Android开发中,广播(BroadcastReceiver)是一种非常重要的组件,用于接收系统或应用程序发送的广播意图(Intent)。在本讲“mooc_android_lesson17_广播实现手机电量查询”中,我们将学习如何利用...
// 从广播接收器中获取到的设备 UsbInterface intf = device.getInterface(0); // 获取接口 UsbEndpoint endpoint = intf.getEndpoint(0); // 获取端点 // 获取UsbDeviceConnection UsbDeviceConnection ...
这个"安卓声波通讯耳机相关-Android利用广播接收器检测用户是否插入耳机.rar"压缩包中可能包含了一个示例项目,用于演示如何通过系统广播监听耳机插拔事件。下面将详细介绍这一技术及其相关知识点。 首先,我们要...
2. **静态注册的广播接收器**:在`AndroidManifest.xml`中注册的广播接收器只能接收静态注册的广播。 3. **动态注册的广播接收器**:如果需要在程序运行时动态地注册广播接收器,可以通过`registerReceiver`方法...
动态注册在代码中完成,仅在注册时有效,当应用退出或者注册的Activity被销毁时,广播接收者将无法接收到广播。 2. **BroadcastIntent**:广播是通过Intent对象传递的。Intent中包含了广播事件的相关信息,广播接收...
在Android系统中,`Manifest` 文件是每个应用的核心配置文件,它包含了应用的组件(如Activity、Service、BroadcastReceiver)以及它们的相关权限等信息。在标题"在运行时管理Manifest Receiver"中,我们关注的是...
需要注意的是,从Android 8.0(API级别26)开始,系统限制了动态注册的广播接收器在后台运行的能力。对于这些版本,你需要在AndroidManifest.xml中静态注册BroadcastReceiver,或使用JobScheduler或WorkManager来...
7. **BroadcastReceiver**:广播接收器用于监听系统广播事件,比如网络状态变化或电池电量低。合集会介绍如何注册和实现广播接收器。 8. **内容提供者(Content Provider)**:内容提供者是数据共享的桥梁,让不同...
需要注意的是,从Android 8.0(API级别26)开始,对于动态注册的BroadcastReceiver,系统不再在后台接收来自隐式广播的Intent,除非该Intent是在Manifest中注册的。因此,对于需要在后台运行的重要广播,建议使用...