转: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了。

最新文章

  1. keyset获取元素
  2. Android数据存储-文件操作
  3. CentOS编译安装NodeJS+Express
  4. POJ 2121
  5. php PDO:数据访问抽象层
  6. Application Loader上传app程序
  7. uva 757
  8. hibernate官方新手教程 (转载)
  9. phpstorm + xdebug 配置
  10. Kafka介绍
  11. 永久修改python默认的字符编码为utf-8
  12. JavaScript中Null和undefind区别
  13. 多个input连接在一起的时候如何实现输入一个数字跳入下一个
  14. windows服务定时任务
  15. oracle数据库误删的表以及表中记录的恢复
  16. 【Linux】Centos下安装ffmpeg
  17. dart之旅(二)- 内建类型
  18. Appium环境配置(一)
  19. bzoj 2308 小Z的袜子(莫队算法)
  20. Linux学习: 触摸屏驱动

热门文章

  1. [SQL] 请教一下 count里面有case when 一般情况下啥时候用
  2. git 错误信息 6 uncommitted changes would be overwritten by merge
  3. tensorflow动态设置trainable
  4. Tensorflow get_variable和Varialbe的区别
  5. IP首部格式[转载]
  6. php数组使用json_encode函数中文被编码成null的原因和解决办法
  7. iscsi target 研究
  8. java单双派机制理解
  9. 带你开始进入NPM的世界之NPM包的开发
  10. js前台取用后台传递过来的map集合方式