PhoneStateListener和服务

时间:2012-09-25 12:37:46

标签: android

我有一个phonestatelistener: 我怎么能在这里开始服务? 我试过了:

startService(new Intent(this, TTS.class));

我怎么能为我工作

private PhoneStateListener mPhoneListener = new PhoneStateListener() {

          @SuppressLint("SdCardPath")
        public void onCallStateChanged(int state, String incomingNumber) {

           try {
            switch (state) {
            case TelephonyManager.CALL_STATE_RINGING:
                //i want to start service
                startService(new Intent(this, TTS.class));

1 个答案:

答案 0 :(得分:0)

致电时

startService(new Intent(this, TTS.class));

new Intent()的第一个参数必须是Context。通常您可以从ServiceActivity拨打此邮件,这两个邮件都会延伸Context

在您的情况下,您的this参数是类PhoneStateListener,但不会扩展Context。我认为这是一个私人的内部阶级。您需要像这样指定外部类:

startService(new Intent(MyActivity.this, TTS.class));

如果您的外部类是活动,那么MyActivity应该是活动的名称。如果外部类是服务,则MyActivity应该是服务的名称。