我有两个活动都有一个用于登录的 GoogleAPIClient。现在发生的情况是,当我通过第一个活动进入第二个活动时,然后我登录第一个活动,即屏幕上的活动,应用程序崩溃。当我不从一项活动转到另一项活动时,没有任何事情会崩溃。巧合的是,这只发生在第一个活动上。我从 1st-2nd-1st-2nd 开始,然后登录了第二个活动,它没有崩溃。
这是我的 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;
}
}