如何使用本地Service实例调用在ILocalService.java接口中声明的onServiceConnected()之外的方法

时间:2011-06-21 05:07:22

标签: android interface service

关于Local Service Sample我已经成功定义了我的ILocalService.java中声明的方法,但我不知道如何在活动的onServiceConnected()之外调用这些方法。我只能从onServiceConnected()中调用它们,这似乎没什么用处。我只限于此吗?这是我的ILocalService.java:

/**************************************************************************************************
 * Filename: ILocalService.java
 * Project name: Local Service Sample
 * Application name: Local Service
 * Description: This file contains an example interface for LocalService
 **************************************************************************************************/

package com.marie.localservicesample;

public interface ILocalService {

    public LocalService getService();

    public int getStatusCode();
}

我的假设是我应该能够调用在我的ILocalService.java中声明的方法。这些调用不应仅限于绑定到LocalService.java的活动的 in onServiceConnected()。我该怎么做?

1 个答案:

答案 0 :(得分:1)

如果要在serviceConnected方法之外使用服务引用。大多数情况下它会抛出nullpointerexception。

在您的活动中创建一个按钮,并尝试在其onClick中使用服务引用。 点击按钮至少等待10秒钟。它会正常工作。

这表明服务需要时间来绑定到本地引用变量。 ServiceConnected方法仅用于表示服务已连接,现在可以使用。

为了在serviceConnected方法之外使用正确的服务。 您可以在serviceConnected方法中维护一个布尔标志。

根据标志值使用服务随时随地

据我所知。

希望有所帮助:)