在广播中启动Activity
来源:互联网 发布:网络游戏server编程 编辑:程序博客网 时间:2024/05/18 02:53
需求:现在有应用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?
- 在广播中启动Activity
- 在广播中启动activity或者dialog
- 在Activity中注册广播
- 在广播接收者里面启动Activity
- 在广播中启动Activity,弹出Dialog需要注意的事项
- Activity发广播,在Service中接收
- 广播启动Activity
- Activity启动广播,广播启动服务
- 在BroadcastReceiver中启动Activity
- 在BroadcastReceiver中启动Activity:
- Brocast Receiver广播中启动Activity 关于报错 FLAG_ACTIVITY_NEW_TASK
- Android 通过广播启动Activity
- 广播中开启Activity
- 277_在Activity中发送接收广播
- 广播 应用在activity中相互传值
- 在源码中监听activity启动
- 在一个service中启动一个activity
- 在BroadcastReceiver中启动Activity的问题
- FreeRTOS系列第13篇---FreeRTOS内核控制
- 不做死就不会死……VMware Workstation 12 里的Ubuntu14.04升级后,虚拟机桌面无法适应客户机了
- phpcms tag
- Weka数据挖掘——聚类
- Java方法栈区抛出的异常
- 在广播中启动Activity
- NopCommerce数据迁移之【新增实体及实体映射后添加迁移文件】
- java自带线程池和队列详细讲解
- win32创建快捷方式
- Excel图表制作(一):商务图表之分组图2
- 源码学习 : View视图 生命周期及各方法的作用(1)
- driver: Linux设备模型之input子系统详解
- Qt之自定义界面(实现无边框、可移动)
- stm32 NVIC