Android开发之非Activity类型的Context启动一个目标Activity
2016-04-06 21:24
555 查看
我们在日常开发中有时会遇到启动一个目标Activity的时候,会利用一个非Activity类型的Context去启动。
但是这样直接去启动一个目标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的context是非Activity类型,如果想要正确启动目标Activity需要设置TAG Task,即FLAG_ACTIVITY_NEW_TASK。其实,意思是,如果我们想要启动一个Activity,启动它的context必须要有一个任务栈。
所以正确的做法是:
Intent intent = new Intent(context,TargetActivity.class); context.startActivity(intent);
但是这样直接去启动一个目标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的context是非Activity类型,如果想要正确启动目标Activity需要设置TAG Task,即FLAG_ACTIVITY_NEW_TASK。其实,意思是,如果我们想要启动一个Activity,启动它的context必须要有一个任务栈。
所以正确的做法是:
Intent intent = new Intent(context,TargetActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent);
相关文章推荐
- Android--绑定服务调用服务的方法
- Android基础学习第一篇—Project目录结构
- 图片处理问题总结
- startActivityForResult方法的使用
- Android中EditText输入字数统计和限制
- Android绘图基础
- Android Studio SVN使用和VisualSVN-Server配置(图解)
- Android 学习记录-加载菜单
- android 跑马灯效果的基本实现以及自定义实现一个界面多个跑马灯效果
- Android 用代码实现防打扰【能够屏蔽电话和短信】
- Android实现修改状态栏颜色
- Android Scroll分析
- android基础总结
- Win7环境下搭建Android安卓开发环境(原创教程)
- Android中通知的简单使用和自定义通知样式
- 对于Android事件分发机制的总结
- Android如何修改gen下的包名
- 任务和回退栈
- Android 高质量高压缩比图像压缩
- android studio 智能提示忽略大小写