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 ...
随机推荐
- [转]nonlocal和global
在Python中,当引用一个变量的时候,对这个变量的搜索是按找本地作用域(Local).嵌套作用域(Enclosing function locals).全局作用域(Global).内置作用域(bui ...
- mysql--SQL编程(关于mysql中的日期) 学习笔记2
一.mysql数据库中的date1.DATETIME和DATE:DATETIME占用8个字节,日期范围为"1000-01-01 00:00:00"到"9999-12-31 ...
- iOS 中的静态库与动态库,区别、制作和使用
如果我们有些功能要给别人用,但是又不想公开代码实现,比如高德地图.第三方登录分享等等,这时候我们就要打包成库了.库分静态库和动态库两种: 静态库:以.a 和 .framework为文件后缀名.动态库: ...
- [转]MySQL DBA面试全揭秘
本文起源于有同学留言回复说想了解下MySQL DBA面试时可能涉及到的知识要点,那我们今天就来大概谈谈吧. MySQL DBA职位最近几年特别热门,不少朋友让我帮忙推荐什么的,也有很多公司找不到合 ...
- k8s实战读书笔记
一.概述 kubernetes中Service是真实应用的抽象,将用来代理Pod,对外提供固定IP作为访问入口,这样通过访问Service便能访问到相应的Pod,而对访问者来说只需知道Service的 ...
- Unicode和UTF的关系
目录结构: contents structure [+] 什么是USC UCS的编码方式 Unicode的来源 为什么需要Unicode Unicode的方式 Unicode和UTF UTF和Unic ...
- hibernate 注解 boolean问题解决方案
1.JPA本身是不支持boolean.可以用Hibernater自带的标签.修改如下. @Column(name = "manager_log") @org.hibernate.a ...
- macOS SIP 权限设置
1.macOS SIP 权限设置 对于 macOS 10.11+ 用户,由于系统启用了 SIP(System Integrity Protection), 导致 root 用户也没有权限修改 /usr ...
- C++转型操作符
转:http://www.cnblogs.com/hazir/archive/2012/04/14/2447251.html 旧式的C转型方式,几乎允许你将任何类型转换为任何其它类型,有其自身的缺陷, ...
- 【转】Kotlin 和 Checked Exception
Kotlin 和 Checked Exception 最近 JetBrains 的 Kotlin 语言忽然成了热门话题.国内小编们传言说,Kotlin 取代了 Java,成为了 Android 的“钦 ...