2012-07-16 80 views
3

我想实现一个侦听器,它将侦听是否有人从任何应用程序复制了任何东西。Android:为剪贴板管理器实现广播接收器

我听说ClipboardManager.OnPrimaryClipChangedListener()它会听复制动作,但这不是一个接收器(据我所知)。我得到了一个sample application,这个应用程序背后的逻辑是,从系统启动启动服务并运行一个服务,它将听取复制动作,但我认为这会耗尽电池。我对吗?

那么,我该如何实现一个广播接收器,它可以收听复制操作。

回答

10

这里的听众:

class ClipboardListener implements ClipboardManager.OnPrimaryClipChangedListener 
{ 
    public void onPrimaryClipChanged() 
    { 
     // do something useful here with the clipboard 
     // use getText() method 
    } 
} 

只需注册吧:

ClipboardManager clipBoard = (ClipboardManager)getSystemService(CLIPBOARD_SERVICE); 
clipBoard.addPrimaryClipChangedListener(new ClipboardListener()); 
+0

是从这个背景也听?如果我在应用程序中添加了此侦听器,用户运行我的应用程序,然后切换到另一个应用程序(我的应用程序将在后台运行),那么此列表器将能够侦听用户是否在其他应用程序中执行拷贝? – 2012-07-16 09:26:13

+1

是的,这将在剪贴板更改的背景中侦听(但如果用户切换到另一个,则必须确保您的应用程序正在运行)。一旦侦听器被调用,从剪贴板获取数据并做你想要的。 – 2012-07-16 09:28:14

+0

还有一个问题(我对此感到抱歉),这将与广播接收器一样,就像它们在后台工作,直到用户杀死应用程序为止。或者这将工作,直到Android操作系统由于内存分类而从内存中杀死应用程序? – 2012-07-16 09:35:53