无法在后台服务android中捕获剪贴板事件

时间:2015-07-23 16:24:32

标签: java android android-studio background-service

我试图在后台服务中捕获clipboardChanged事件

public class MainActivity extends ActionBarActivity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Intent i = new Intent(MainActivity.this, TranslateService.class);
        startService(i);
    }
}


public class TranslateService extends IntentService implements ClipboardManager.OnPrimaryClipChangedListener {

    public TranslateService() {
        super(null);
    }

    public TranslateService(String name) {
        super(name);
        ClipboardManager manager = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
        manager.addPrimaryClipChangedListener(this);
    }



    @Override
    protected void onHandleIntent(Intent intent) {

    }

    @Override
    public void onPrimaryClipChanged() {
        Toast.makeText(this, "Working", Toast.LENGTH_LONG).show();
    }
}

应该举杯祝酒"工作"如果事件被触发。 我还试图创建ClipboardManager并在onHandleIntent中添加监听器,它也没有工作。 有任何想法吗?

1 个答案:

答案 0 :(得分:0)

调用默认构造函数时,您不会将侦听器添加到ClipboardManager

我认为您打算在默认构造函数中使用this(null),而不是直接调用super(null)

public TranslateService() {
    this(null);
}