Context.startActivity出现AndroidRuntimeException
转:http://hi.baidu.com/huaxinchang/item/e1a771cf4d424312b77a2416
昨天做了一个Activity的启动动画,效果是点击桌面图标先出现动画后启动Activity,今天想让其开机启动,于是我写了一个类BootReceiver.java用于接收开机广播,启动动画效果,代码如下:
public class BootReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if(intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){
Log.d("splashscreen", "SplashScreen---------->>>>>>>>BootReceiver");
Intent splash=new Intent(context,SplashScreen.class);
context.startActivity(splash);
}
}
}
调试程序的时候发现其并未开机启动,使用adb logcat发现报了如下的错误。
E/JavaBinder( 2252): *** Uncaught remote exception! (Exceptions are not yet supported across processes.)
E/JavaBinder( 2252): android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
E/JavaBinder( 2252): at android.app.ContextImpl.startActivity(ContextImpl.java:622)
E/JavaBinder( 2252): at com.android.server.ConnectivityService.sendBugReportToServer(ConnectivityService.java:2055)
E/JavaBinder( 2252): at com.android.server.ConnectivityService.startUsingNetworkFeature(ConnectivityService.java:725)
E/JavaBinder( 2252): at android.net.IConnectivityManager$Stub.onTransact(IConnectivityManager.java:135)
E/JavaBinder( 2252): at android.os.Binder.execTransact(Binder.java:288)
E/JavaBinder( 2252): at dalvik.system.NativeStart.run(Native Method)
借用高人分析:
Context 中有一个startActivity方法,Activity继承自Context,重载了startActivity方法。如果使用Activity的 startActivity方法,不会有任何限制,而如果使用Context的startActivity方法的话,就需要开启一个新的task,遇到上面那个异常的,都是因为使用了Context的startActivity方法。解决办法是,加一个flag。在context.startActivity(splash)之前加上
splash.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
这样就可以在新的task里面启动这个Activity了。
Context.startActivity出现AndroidRuntimeException的更多相关文章
- context.startActivity(Intent intent)方法启动activity
在一个Activity环境中用该方法启动一个一个activity不会出任何问题,但在activity之外的其他组件中使用该方法就会出现以下错误: Calling startActivity() fro ...
- Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag.
https://blog.csdn.net/watermusicyes/article/details/44963773 Context中有一个startActivity方法,Activity继承自C ...
- 小白也能看懂的插件化DroidPlugin原理(三)-- 如何拦截startActivity方法
前言:在前两篇文章中分别介绍了动态代理.反射机制和Hook机制,如果对这些还不太了解的童鞋建议先去参考一下前两篇文章.经过了前面两篇文章的铺垫,终于可以玩点真刀实弹的了,本篇将会通过 Hook 掉 s ...
- 解决在非Activity中使用startActivity
错误提示信息: Caused by: android.util.AndroidRuntimeException: Calling startActivity() from outside of an ...
- mono for android Listview 里面按钮 view Button click 注册方法 并且传值给其他Activity 主要是context
需求:为Listview的Item里面的按钮Button添加一个事件,单击按钮时通过事件传值并跳转到新的页面. 环境:mono 效果: 布局代码 主布局 <?xml version=" ...
- 【第一课】神奇的Context
初学Android的困惑 初学Android跳转页面的时候,往往教程里是这么写的: Intent intent = new Intent(); //MyActivity就是当前的Activity,It ...
- Context是什么,怎么用
一.Context是什么 开始学安卓的时候发现经常有context,但是都不知道为什么,什么时候需要它. 官方文档概述:关于应用程序环境的全局信息的接口.这是一个抽象类,它的实现是由安卓系统提供的.它 ...
- Android Activity.startActivity流程简介
http://blog.csdn.net/myarrow/article/details/14224273 1. 基本概念 1.1 Instrumentation是什么? 顾名思义,仪器仪表,用于在应 ...
- Context Application 使用总结 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
随机推荐
- 每日学习与工作计划移至日事清APP
今天今天开始,每日学习与工作计划移至日事清APP. 博客园依然是我写文字的主战场.日事清APP仅限于做计划.
- MATLAB 的数据导入与导出
1 数据导入: %% 高层次读取数据. importdata 函数是一个高层次的函数 filename = 'weeklydata.txt'; delimiterIn =' '; %delimiter ...
- linux运维常见英文报错中文翻译(菜鸟必知)
linux常见英文报错中文翻译(菜鸟必知) 1.command not found 命令没有找到 2.No such file or directory 没有这个文件或目录 3.Permissio ...
- idea 不下载jar包
是因为用的gradle 然后没有设置gradle jvm
- 【Hibernate】数据Session对象的常规操作收集
因为Hibernate是ORM(对象关系映射)的,所以程序员是不需要写Sql语句的.所有的操作都是通过对对象的操作. 1,原生Session 事务管理 Transaction tx = session ...
- Spring3整合Quartz实现定时作业
Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.Quartz可以用来创建简单或为运行十个,百个, ...
- SharePoint 2013 Step by Step—— 为终端用户提供故障恢复的解决方案 Part I
Disaster Recovery,我把他直译"故障恢复",或者也可以翻译成 "灾难复原 ".光字面意思就可以领会到,当SharePoint Server发生了 ...
- dedecms {dede:php}标签用法介绍
最简单的输入如 代码如下 复制代码 {dede:php} $numA = 1; $numB = 2; echo $numA + $numB; {/dede:php} 从上面语句可以看出dede:php ...
- 章节0:MySQl学前知识储备
一.数据库基础: 1.数据库(database):保存有组织的数据的容器(通常是一个文件或一组文件). 2.数据库管理系统(DBMS):创建和操纵数据库的软件系统. 3.表(table):某种特定类型 ...
- xml中的<![CDATA[]]> 简介
被<![CDATA[]]>这个标记所包含的内容将表示为纯文本,比如<![CDATA[<]]>表示文本内容“<”. 此标记用于xml文档中,我们先来看看使用转义符的 ...