Gab*_*eto 8 android android-activity
问题:ActivityA启动ActivityB,共享元素转换间歇性崩溃不一致可重现的Api级别:23,24和25
启动活动的代码:
Intent intent = new Intent(this, ActivityB.class);
Pair<View, String> logoTransition = Pair.create(logo, getString(R.string.transition_logo));
Pair<View, String> logoTextTransition = Pair.create(logoText, getString(R.string.transition_logo_text));
ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(this, logoTransition, logoTextTransition);
ActivityCompat.startActivity(this, intent, options.toBundle());
Run Code Online (Sandbox Code Playgroud)
Stacktrace(API 23):
Exception java.lang.IllegalArgumentException:
android.os.Parcel.readException (Parcel.java:1606)
android.os.Parcel.readException (Parcel.java:1555)
android.app.ActivityManagerProxy.isTopOfTask (ActivityManagerProxy.java:4787)
android.app.Activity.isTopOfTask (Activity.java:5753)
android.app.Activity.cancelInputsAndStartExitTransition (Activity.java:4075)
android.app.Activity.startActivityForResult (Activity.java:4052)
android.app.Activity.startActivity (Activity.java:4312)
android.support.v4.content.ContextCompat.startActivity (ContextCompat.java)
__null__.getDrawable (ContextCompat.java)
__null__.isDeviceProtectedStorage (ContextCompat.java)
com.my.app.activity.ActivityA.startMainActivity (ActivityA.java)
Run Code Online (Sandbox Code Playgroud)
有谁知道这种行为的原因是什么?有什么建议的解决方案吗?
我想,您不应该使用该版本的支持库中的方法。当然,由于随机堆栈跟踪,我无法从您现有的问题中弄清楚。
由于翻译场景引入了表格 4.4。您可以包括 api 弃用。而且,推荐,否则,为什么我们需要这两种类型?
if (Build.VERSION.SDK_INT >= 21) {
ActivityOptions options = ActivityOptions
.makeSceneTransitionAnimation(this, logoTransition, logoTextTransition);
startActivity(this, intent, options.toBundle());
}
else {
ActivityOptionsCompat options = ActivityOptionsCompat
.makeSceneTransitionAnimation(this, logoTransition, logoTextTransition);
ActivityCompat.startActivity(this, intent, options.toBundle());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3316 次 |
| 最近记录: |