2015-01-12 121 views
0

我有两个项目,我们称它们为App和Dependency。 依赖项是一种GCM解析器项目,它可以执行...事情。很难说,因为写得不好,我不得不使用公司项目。Android - 从应用程序获取应用程序

无论如何,我目前正在尝试更改部分,在那里显示通知。我不想过滤,因为有时会收到已经显示的通知。我的计划是将ID与GreenDAO数据库进行比较......这是在App内部实现的。我有我的数据库的单身类管理器,它管理所有数据库查询。

我应该如何从依赖项目到那个类? 我知道,我应该使用接口,这种或那种方式,但我不知道如何。

回答

1

我不知道你的类如何,但一般来说,你可以做这样的事情:

在相关项目:

接收列表创建一个监听你从想要数据库,让我们说onDBRequest

public interface onDBRequest { 
    public List<Integer> onIDRequest(); 
} 

然后,在你的类,你证明他通知您可以这样做:

public class ClassThatShowsNotifications { 
    private OnDBRequest mDbListener; 
    public onDBRequest getDblistener(); 
    public void setDblistener(); 
    ... 

} 当你需要的ID进行比较的列表,你可以致电:

getDbListener().onIDrequest(); //will return the list of IDs you need to compare 

在应用项目:

让你的DAO实现onDBRequest和实施onIDRequest返回清单,你需要稍后比较:

public class YourDAO implements onDBRequest{ 
    ... 

public List<Integer> onIDRequest(){ 
List<Integer> IDs; 
    //do your stuff to return the IDs 
return IDs; 

} }

现在,您唯一需要做的就是在显示通知的类上设置您想要的侦听器。例如:

在YourDAO类

ClassThatShowsNotification notifications = new ClassThatShowsNotifications(); 
notifications.setDBListener(this); 

编辑

如果你的类是基于服务类,你可以做几乎相同。当你启动这个服务时,你可以传递你的单身作为监听器。您可以使用bindService()或从您的服务中创建一个单身人士。

public class YourService extends Service{ 

    private static YourService sInstance; 


    public static YourService getInstance(){ 
    return sInstance; 
    } 
    onCreate(){ 
    sInstance = this; 

    } 

} 

然后,当你启动服务

YourService.getInstance().setDBListener((onDBRequest)YourDAOSingleton.getInstance()); 

这将很好地工作,因为你有一个本地服务,但你也可以看看Broadcast Receivers

+0

好吧,我觉得我得到了一个想法如何去做。 如果ClassThatShowsNotification是服务类型类,该怎么办?从我所收集的内容来看,服务的监听器实现看起来有点不同。 –

+0

请检查编辑的答案 – vinitius

相关问题