【问题标题】:IllegalArgumentException when execute activity Transition Anim执行活动过渡动画时出现 IllegalArgumentException
【发布时间】:2018-01-05 03:44:29
【问题描述】:

错误日志如下

java.lang.IllegalArgumentException
at android.os.Parcel.readException(Parcel.java:1624)
at android.os.Parcel.readException(Parcel.java:1573)
at android.app.ActivityManagerProxy.isTopOfTask(ActivityManagerNative.java:4907)
at android.app.Activity.isTopOfTask(Activity.java:5691)
at android.app.Activity.cancelInputsAndStartExitTransition(Activity.java:4029)
at android.app.Activity.startActivityForResult(Activity.java:4006)
at android.support.v4.app.j.startActivityForResult(SourceFile:54)
at android.support.v4.app.n.startActivityForResult(SourceFile:65)
at android.app.Activity.startActivity(Activity.java:4266)

执行 animtion 时看起来有问题,但我不知道如何解决。顺便说一句,我用它来开始活动

 ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation((Activity) context, sharedElements);
 ActivityCompat.startActivity(context, intent, optionsCompat.toBundle());

需要 帮助

【问题讨论】:

    标签: android android-activity


    【解决方案1】:

    不要从活动中投射上下文:

    ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation(context, sharedElements);
    ActivityCompat.startActivity(context, intent, optionsCompat.toBundle());
    

    【讨论】:

      【解决方案2】:

      这样使用:

      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
          ActivityOptionsCompat optionsCompat = 
          ActivityOptionsCompat.makeSceneTransitionAnimation((Activity) context, sharedElements);
          ActivityCompat.startActivity(context, intent, optionsCompat.toBundle());
      } else {
         startActivity(context, intent);
      }
      

      【讨论】:

        猜你喜欢
        • 2015-05-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-24
        相关资源
        最近更新 更多