在android中的服务中听剪贴板

时间:2016-12-27 15:26:25

标签: android

我想听剪贴板,如果有任何东西复制,所以我得到它并处理它。所以我为它写了一个服务。但似乎android系统杀了我的服务过程一段时间后没有字复制到剪贴板我必须做什么,我的服务一直在运行?

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;
    }

}

1 个答案:

答案 0 :(得分:-1)

你可以使用Service#startForeground,它会使系统不会杀死你的服务,除非它需要严重的内存。 权衡是,您需要发布通知以通知用户您的应用始终在运行。