Android 当SDK>;10,如果SDK<;=10

Android 当SDK>;10,如果SDK<;=10,android,debugging,Android,Debugging,我的程序在SDK 4.0.4下开始失败,但在SDK 2.3.3上工作,这没有意义 基本流程是: 第一个活动启动远程服务,然后调用第二个活动 按一下按钮 第二个活动绑定到服务,然后退出,使用 logcat中没有解释为什么会发生 这是我在服务启动后看到的: 04-15 09:13:46.614: I/ErrandAssistantService(7015): Setting a new request for location updates 04-15 09:13:46.661: I/Erra

我的程序在SDK 4.0.4下开始失败,但在SDK 2.3.3上工作,这没有意义

基本流程是:

  • 第一个活动启动远程服务,然后调用第二个活动 按一下按钮
  • 第二个活动绑定到服务,然后退出,使用 logcat中没有解释为什么会发生
这是我在服务启动后看到的:

04-15 09:13:46.614: I/ErrandAssistantService(7015): Setting a new request for location updates
04-15 09:13:46.661: I/ErrandAssistantService(7015): saveProximityAlert - used GPS
04-15 09:13:46.669: I/ErrandAssistantService(7015): saveProximityAlert - used network
04-15 09:13:46.677: I/ErrandAssistantService(7015): saveProximityAlert - used GPS
04-15 09:13:46.681: I/ErrandAssistantService(7015): saveProximityAlert - used network
这发生在第二个活动中:

04-15 09:13:47.044: I/MapViewActivity(7039): OnResume: mapView loaded = true
04-15 09:13:47.083: I/MapActivity(7039): Handling network change notification:CONNECTED
04-15 09:13:47.196: I/ErrandMapActivity(7039): onServiceConnected
04-15 09:13:47.196: I/ErrandMapActivity(7039): registering callback
04-15 09:13:47.200: I/ErrandAssistantService(7015): registerCallback
04-15 09:13:47.200: I/ErrandMapActivity(7039): onResume - binding succeeded
然后我看到这个来自服务的消息,试图将信息发送到第二个活动(已经退出):

因此,活动已绑定到服务,然后服务将数据发送回活动,但该活动已退出

如果我将其设置为高于10,则它会崩溃,否则工作正常:

<uses-sdk
    android:minSdkVersion="7"
    android:targetSdkVersion="10" />
如果我将SDK版本设置为17,但手机是SDK 2.3.3,那么它不会崩溃,但这与我将SDK版本设置为10,手机是版本4.0.4时的情况相同

我还尝试了第二个活动,其中它没有绑定到服务,但观察到了相同的行为,因此它似乎与远程服务无关

我还让服务在与活动相同的进程中运行,以查看是否可以获得任何调试信息,但这也没有给我任何附加信息

我不喜欢将SDK版本设置得太低,但我需要进行新的更新,这是唯一可行的解决方案

<uses-sdk
    android:minSdkVersion="7"
    android:targetSdkVersion="10" />
@Override
public void onStop() {
    Log.i(TAG, "onStop");
    super.onStop();
}