① 安卓开机广播是什么意思
就是android 系统开机的时候会发送一个广播,应用程序注册的这个广播的话就可以收到,通常很多应用就会启动后台服务
② android系统启动一个应用时有什么广播
现在有应用A和应用B,我需要在A应用中启动B应用中的某个Activity
实现:A应用中的Activity发送广播,关键代码如下:
String broadcastIntent = "com.example.android.notepad.NotesList";//自己自定义
Intent intent = new Intent(broadcastIntent);
this.sendBroadcast(intent);
B应用中需要一个BroadcastReceiver来接收广播,取名TestReceiver继承BroadcastReceiver重写onReceive方法启动一个activity,关键代码如下:
if(intent.getAction().equals("com.example.android.notepad.NotesList")){
Intent noteList = new Intent(context,NotesList.class);
noteList.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(noteList);
}
到这代码就完成了,当然在AndroidManifest.xml中要对TestReceiver进行注册,代码如下:
<receiver android:name="TestReceiver">
<intent-filter>
<action android:name="com.example.android.notepad.NotesList"/>
</intent-filter>
</receiver>
这样就完成了通过广播启动另一个应用Activity。
注意问题:Context中有一个startActivity方法,Activity继承自Context,重载了startActivity方法。如果使用 Activity的startActivity方法,不会有任何限制,而如果使用Context的startActivity方法的话,就需要开启一个新的task,解决办法是,加一个flag,也就是这句noteList.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);的作用。如果不添加这句,就会报android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity,Caused by: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
分类: Android
③ Android启动广播时怎样往广播中传递参数
在android中使用广播来让其他监听广播的地方能够对相应的事情做处理,但有的时候需要传递一些其他的附带值,而这个时候是可以直接用播放广播的intent来传递的。
例:
Intent intent = new Intent();
intent.putExtra("msgPersons", msgPersons);
intent.setAction(Constant.hasMsgUpdatedAction);
intent.putExtra("userId", userId);
intent.putExtra("msgCount", messages.size());
sendBroadcast(intent);
④ android一个activity启动时会向系统发送一个默认广播吗android.intent.category.LAUNCHER这个是广播吗
你要捕捉的话,自己写一个广播发送。有两个方法,一个是动态注册(就是需要是注册发送),一个是静态的。
想监听的话,就是应用程序启动的时候发送广播。用service接受。我是这样做的。类是音乐播放器,在退出应用它还会继续播放。当再次点开始不影响播放,而且播放器上面的进度条和歌词都是更新过的时时改变。
⑤ Android手机无开机广播,应用如何自启
三星部分手机支持自启动功能,(以三星S7 Edge为例)设置应用程序自启动方法:智能管理器-应用程序管理-管理自动运行-滑动应用程序开关。
⑥ android接受不到开机广播
intent
判断
intent.getAction()是否与
android.intent.action.BOOT_COMPLETED
相同,发出的是这个,你没监听这个Action
。
另外注意的是,如果是
3.1以下的系统,没问题。3.1以上的系统,需要有Activity存在,并且启动一次程序,才能够实现广播。
⑦ Android开机过程中什么时候发开机广播
Android开机过程中发开机广播如下: intent的发送点是在: finishBooting函数(ActivityManagerService.java) 调用关系是: startHomeActivityLocked() -> ensureBootCompleted() -> finishBooting() -> mStackSupervisor.startHomeActivity(intent, aInfo) 所以系统发出这个intent的时候 ,home界面并没有起来,发出之后很短的时间 home就启动,在配置文件AndroidManifest.xml中向系统注册receiver,子节点 intent-filter 表示接收android.intent.action.BOOT_COMPLETED 消息 <receiver android:name="com.ray.ray.receiver.BootCompletedReceiver" > <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver>
⑧ android 启动一个app是否有广播
这是一个有深度的问题。
博文“Android 编程下监视应用程序的启动”,如果它是准确的,那么启动app系统并不会提供广播。
⑨ android 接受开机广播
Android接收开机广播,需要用到播广播接收者BroadcastReceiver组件。
具体代码:
在配置文件AndroidManifest.xml中向系统注册receiver
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
需要添加相应权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
在Receiver中就可以添加开机需要进行的操作
public class BootCompletedReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
}
}