【发布时间】:2014-01-17 08:54:28
【问题描述】:
您好,我正在开发小型 android 应用程序。所以我的应用程序包含以下内容。 3 活动考虑 A1、A2、A3。 A1 是我的启动器活动。我的应用程序还包含一项后台服务。因此,当我单击 A1 内的按钮时,它将启动后台服务。
在后台服务中,我正在启动 A2。我还在服务中进行了一些计算,所以在这些计算之后,我仅从服务开始活动 A3。所以我的问题就在这里,当我从 A1 启动服务时,它会从服务中打开 A2。如果我从那里(A2 到 A1)单击返回,它将返回到 A1。但是在(A1 -> 服务 -> A2 -> A3(这也是从服务开始))的情况下,如果我单击返回,则会导致无法暂停活动异常错误。它不会恢复 A1。
当我从服务开始活动时,我使用的是Intent.FLAG_ACTIVITY_NEW_TASK。哪里有问题?需要帮助谢谢
看看这是我的错误日志:
01-17 14:45:03.689: E/AndroidRuntime(27805): FATAL EXCEPTION: main
01-17 14:45:03.689: E/AndroidRuntime(27805): java.lang.RuntimeException: Unable to pause activity { ABC/ ABC.map.MapActivity}: java.lang.IllegalStateException
01-17 14:45:03.689: E/AndroidRuntime(27805): at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2709)
01-17 14:45:03.689: E/AndroidRuntime(27805): at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2665)
01-17 14:45:03.689: E/AndroidRuntime(27805): at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:2643)
01-17 14:45:03.689: E/AndroidRuntime(27805): at android.app.ActivityThread.access$800(ActivityThread.java:124)
01-17 14:45:03.689: E/AndroidRuntime(27805): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1159)
01-17 14:45:03.689: E/AndroidRuntime(27805): at android.os.Handler.dispatchMessage(Handler.java:99)
01-17 14:45:03.689: E/AndroidRuntime(27805): at android.os.Looper.loop(Looper.java:137)
01-17 14:45:03.689: E/AndroidRuntime(27805): at android.app.ActivityThread.main(ActivityThread.java:4436)
01-17 14:45:03.689: E/AndroidRuntime(27805): at java.lang.reflect.Method.invokeNative(Native Method)
01-17 14:45:03.689: E/AndroidRuntime(27805): at java.lang.reflect.Method.invoke(Method.java:511)
01-17 14:45:03.689: E/AndroidRuntime(27805): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
01-17 14:45:03.689: E/AndroidRuntime(27805): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
01-17 14:45:03.689: E/AndroidRuntime(27805): at dalvik.system.NativeStart.main(Native Method)
01-17 14:45:03.689: E/AndroidRuntime(27805): Caused by: java.lang.IllegalStateException
01-17 14:45:03.689: E/AndroidRuntime(27805): at android.media.MediaPlayer._stop(Native Method)
01-17 14:45:03.689: E/AndroidRuntime(27805): at android.media.MediaPlayer.stop(MediaPlayer.java:977)
01-17 14:45:03.689: E/AndroidRuntime(27805): at ABC.map.MapActivity.onPause(MapActivity.java:170)
01-17 14:45:03.689: E/AndroidRuntime(27805): at android.app.Activity.performPause(Activity.java:4564)
01-17 14:45:03.689: E/AndroidRuntime(27805): at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1195)
01-17 14:45:03.689: E/AndroidRuntime(27805): at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2696)
01-17 14:45:03.689: E/AndroidRuntime(27805): ... 12 more
【问题讨论】:
-
请贴出你的logcat和相关代码。谢谢。
-
是的,请稍等。我会发布它
-
覆盖A2活动内部的onBackPressed()方法,通过intent启动活动。
-
好的,明白了。但另一点是,当我从 A2 中单击时,它会返回到 A1,但是如果尝试从 A2 中返回到 A1,则会出现此错误。
-
在完成 A2 活动之前,当您从 A2 活动中按下后退按钮时。无需后退,因为 A1 是您的主要活动。