我有两个活动都有一个用于登录的GoogleAPIClient。现在发生的事情是当我通过第一个活动进入第二个活动,然后我登录第一个活动,这是屏幕上的活动,应用程序崩溃。当我不从一个活动转到另一个活动时,没有任何事情崩溃。巧合的是,这只发生在第一次活动上。我从1号 - 2号 - 1号 - 2号开始,然后登录了第2个活动,并没有崩溃。
这是我的LogCat:
09-09 14:03:32.192 968-13080/? A/ActivityManager﹕ Activity Manager Crash
java.lang.IllegalArgumentException
at com.android.server.am.ActivityManagerService.isTopOfTask(ActivityManagerService.java:11223)
at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:1629)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2606)
at com.android.server.am.ActivityManagerServiceEx.onTransact(ActivityManagerServiceEx.java:448)
at android.os.Binder.execTransact(Binder.java:446)
09-09 14:03:32.200 31715-31715/<MyPackage> E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: <MyPackage>, PID: 31715
java.lang.IllegalArgumentException
at android.os.Parcel.readException(Parcel.java:1544)
at android.os.Parcel.readException(Parcel.java:1493)
at android.app.ActivityManagerProxy.isTopOfTask(ActivityManagerNative.java:4517)
at android.app.Activity.isTopOfTask(Activity.java:5448)
at android.app.Activity.startActivityForResult(Activity.java:3857)
at android.app.Activity.startActivity(Activity.java:4090)
我认为它在我的util类上的这行代码崩溃了,它用动画初始化了一个活动
public static void startActivityWithAnimations(Activity activity, Intent intent, AnimationUtils.ANIM_STYLE animationStyle) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Bundle animation = ActivityOptions.makeSceneTransitionAnimation(activity).toBundle();
**activity.startActivity(intent, animation);**
} else {
activity.startActivity(intent);
activity.overridePendingTransition(animationStyle.getEnterAnim(), animationStyle.getExitAnim());
}
}
查看Activity类,我认为它在这行代码中崩溃了:
private boolean isTopOfTask() {
try {
**return ActivityManagerNative.getDefault().isTopOfTask(mToken);**
} catch (RemoteException e) {
return false;
}
}