Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android服务中侦听剪贴板_Android - Fatal编程技术网

在android服务中侦听剪贴板

在android服务中侦听剪贴板,android,Android,我想听听剪贴板,如果有什么东西被复制了,我就得到它并处理它。所以我为它写了一个服务。但似乎安卓系统在一段时间后停止了我的服务进程,没有word复制到剪贴板。我必须做些什么才能让我的服务继续运行 public class Service_clipboard extends Service { @Override public int onStartCommand(Intent intent, int flags, int startId) { Clipboar

我想听听剪贴板,如果有什么东西被复制了,我就得到它并处理它。所以我为它写了一个服务。但似乎安卓系统在一段时间后停止了我的服务进程,没有word复制到剪贴板。我必须做些什么才能让我的服务继续运行

public class Service_clipboard extends Service {


    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {

        ClipboardManager.OnPrimaryClipChangedListener mPrimaryChangeListener = new ClipboardManager.OnPrimaryClipChangedListener() {
            public void onPrimaryClipChanged() {

                ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);

                DoSomeThing(clipboard.getText().toString());
            }
        };

        ClipboardManager clipboardManager = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
        clipboardManager.addPrimaryClipChangedListener(mPrimaryChangeListener);

        return Service.START_REDELIVER_INTENT;
    }

    @Override
    public IBinder onBind(Intent arg0) {
        // TODO Auto-generated method stub
        return null;
    }

}
您可以使用,它将使系统不会终止您的服务,除非它非常需要内存。
折衷是,您需要发布通知,通知用户您的应用程序一直在运行。

不应使用服务来侦听剪贴板更改。电池的耗电量很大。