2010-09-17 21 views
0

这是我们可以在服务参考页here阅读:如何在1.5 AVD测试与onstartcommand

如果你需要你的应用程序在平台之前的版本中API 5级运行,你可以使用下面的模型来处理这种情况下较老的onStart(Intent,int)回调。 handleCommand方法由您酌情执行:
// This is the old onStart method that will be called on the pre-2.0 
// platform. On 2.0 or later we override onStartCommand() so this 
// method will not be called. 
@Override 
public void onStart(Intent intent, int startId) { 
    handleCommand(intent); 
} 

@Override 
public int onStartCommand(Intent intent, int flags, int startId) { 
    handleCommand(intent); 
    // We want this service to continue running until it is explicitly 
    // stopped, so return sticky. 
    return START_STICKY; 
} 

这对我的2.1 AVD非常适用。

但是我怎样才能测试这在我的1.5 AVD,因为它给我逻辑编译错误。

回答

0

我刚刚测试过它,它应该按照说明运行。您必须针对比API级别5高的Android版本编译项目,才能使用方法onStartCommand()。请记住在项目设置的“Android”选项卡中选择Android 2.0.1(级别6),并在您的Android清单中将minSdkVersion设置为3。

您应该可以在Android 1.5和Android 2.1上运行此编译的APK。

+0

非常感谢您的回答。它也适用于我的模拟器版本2.1。我真正的问题是我如何在我的1.5模拟器上测试它。 – Plissken 2010-09-20 09:30:18

+0

如果你以正确的方式做到了,你可以从1.5 AVD开始。你有没有把你的minSdkVersion设置为3?否则它将无法工作。如果你仍然有问题:你会得到哪些错误? – mreichelt 2010-09-20 14:45:16

+1

我刚刚发现如何在1.5 AVD上运行我的应用程序:通常,我已经选择了构建应用程序所需的项目构建目标“Android 2.1”。我已将部署目标选择模式设置为手动。这样我可以在运行应用程序时选择我的1.5 AVD。之前它被设置为自动,并且启动程序拒绝在1.5模拟器上启动应用程序,因为我的AVD与项目目标“Android 2.1”不兼容。 – Plissken 2010-09-22 07:54:10