当android应用程序关闭后如果有信息广播过来应用程序的广播接收器也被系统调用自动运行这种广播是非常驻行广播
时间: 2024-03-29 12:39:16 浏览: 15
这个描述不太准确。在 Android 中,广播分为两种类型:标准广播和有序广播。其中,标准广播是异步的,广播发送者不会等待广播接收者的响应;而有序广播是同步的,广播发送者会等待广播接收者处理完毕后再继续执行。
另外,Android 中的广播有两种发送方式:普通广播和粘性广播。其中,普通广播是一种常规的广播,发送后所有的接收者都会同时接收到广播消息;而粘性广播是一种特殊的广播,发送后即使应用程序关闭,广播接收器也能够接收到最近一次广播消息。
对于您的问题,如果应用程序关闭后有广播消息到达,广播接收器并不会自动运行,除非这个广播是粘性广播或者在应用程序关闭前已经注册了该广播接收器。如果应用程序已经关闭,而且没有注册广播接收器,那么即使有广播消息到达,也不会有任何响应。
相关问题
Android编写一个程序,实现无序广播的发送和接收。
以下是Android编写一个程序,实现无序广播的发送和接收的步骤:
1.在AndroidManifest.xml文件中注册广播接收器,例如:
```xml
<receiver android:name=".MyBroadcastReceiver">
<intent-filter>
<action android:name="com.example.broadcast.MY_BROADCAST"></action>
</intent-filter>
</receiver>
```
2.创建一个广播接收器类MyBroadcastReceiver,继承BroadcastReceiver类,并重写onReceive()方法,例如:
```java
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// 处理接收到的广播信息
String message = intent.getStringExtra("message");
Toast.makeText(context, "Received message: " + message, Toast.LENGTH_SHORT).show();
}
}
```
3.在需要发送广播的地方,创建一个Intent对象,设置广播的Action和需要传递的信息,例如:
```java
Intent intent = new Intent();
intent.setAction("com.example.broadcast.MY_BROADCAST");
intent.putExtra("message", "Hello, this is a broadcast message!");
sendBroadcast(intent);
```
4.运行程序,发送广播后,MyBroadcastReceiver类中的onReceive()方法会被调用,处理接收到的广播信息。
编写一个Android程序,实现无序广播的发送和接收
以下是一个简单的Android程序,用于发送和接收无序广播:
1.发送无序广播
```java
Intent intent = new Intent();
intent.setAction("com.example.broadcast.MY_BROADCAST");
intent.putExtra("msg", "Hello, this is an unordered broadcast!");
sendBroadcast(intent);
```
2.接收无序广播
```java
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if ("com.example.broadcast.MY_BROADCAST".equals(action)) {
String msg = intent.getStringExtra("msg");
Toast.makeText(context, "Received broadcast message: " + msg, Toast.LENGTH_SHORT).show();
}
}
}
```
在AndroidManifest.xml文件中注册广播接收器:
```xml
<receiver android:name=".MyBroadcastReceiver">
<intent-filter>
<action android:name="com.example.broadcast.MY_BROADCAST" />
</intent-filter>
</receiver>
```
以上代码中,我们首先创建了一个Intent对象,并设置了Action和Extra信息,然后调用sendBroadcast()方法发送广播。接着,我们创建了一个BroadcastReceiver的子类MyBroadcastReceiver,并重写了onReceive()方法来处理接收到的广播。最后,在AndroidManifest.xml文件中注册了MyBroadcastReceiver。