最近在做一个谷歌语音调用APP设置闹钟的Issue,查看官方文档发现谷歌语音发送Intent给App时需要启动一个Activity,能不能使用Service或者广播去接收Intent呢?答案是不行的,使用普通的Activity有一个问题:每次语音发送Intent给APP的Activity的时候都要启动一次Activity,并且在无法接收到来自Activity的返回信息时,谷歌语会不断发送Intent,直到接收到返回信息。如果Activity没有立刻返回信息给Activity,这个Activity会不断启动,甚至会导致系统奔溃。加上通过谷歌语音进行的操作,还要启动APP的Activity使之可见,体验非常不好。于是想写一个没有界面的Activity,使这个Activity的java代码执行,界面又可以不显示出来。这种情况是可以实现的。
1. 首先新建一个Activity,使之继承Activity,不能使其他的,比如AppCompatActivity(带actionbar或者toolbar)的主题与activity不搭导致app运行错误。