Android 通过广播启动Activity
来源:互联网 发布:win10纯净版64位 知乎 编辑:程序博客网 时间:2024/05/19 02:00
需求:现在有应用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 通过广播启动Activity
- android--通过广播启动另一个应用的Activity
- 通过广播启动另一个应用的Activity
- Android开发——通过广播启动另一个应用的Activity
- (转)Android开发——通过广播启动另一个应用的Activity
- android 通过uri启动Activity
- Android - 通过Intent启动Activity
- android 通过uri启动Activity
- Android 通过命令行启动Activity
- Android: 通过 intent 启动 Activity
- Android开机自启动应用通过广播
- 广播启动Activity
- android 音乐播放 启动方式 (3)服务通过发送广播来控制activity显示进度等
- Activity启动广播,广播启动服务
- android 功能代码 后台服务通过广播更新Activity界面
- Android 通过adb发广播的形式开启activity
- android广播实现短信窃听器和开机自动启动activity
- Android adb 发送广播、启动Activity、Service等
- 第51页第十题
- 2013年第五届蓝桥杯决赛C组题目 第一题 标题:好好学习
- HTML5开发准备
- 第四周项目四:指向学生类的指针
- java 反射
- Android 通过广播启动Activity
- 网卡流量监控工具vnstat的使用
- c++primer第十二章类12.1
- JavaScript DOM学习(4) 操作文本结点
- vs2012下编译一个opencv程序时,一直出现msvcp120d.dll文件丢失的提示信息
- 蓝桥杯 代码填空 N进制小数
- 第三周上机项目5.1数组做数据成员
- wifi基本知识
- 九度 1083:特殊乘法(模拟)