首先,我搜索了这个问题,发现了大约 2-3 个 stackoverflow 链接,但我没有得到明确的答案。基本上,我的应用程序需要在手机停靠(任何类型的停靠)或屏幕关闭时启动一个活动。我在清单中注册了一个广播接收器:
<receiver android:name=".BootReciever">
<intent-filter >
<action android:name="android.intent.action.ACTION_DOCK_EVENT"/>
<action android:name="android.intent.action.SCREEN_OFF"/>
</intent-filter>
</receiver>
在我的课堂上:
public class BootReciever extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if(action.equals(Intent.ACTION_DOCK_EVENT)){
//work for dock
}
if (action.equals(Intent.ACTION_SCREEN_OFF)) {
//work for screen off
}
}
}
但两者都不起作用。两种情况我的工作都没有完成。我读到我必须在服务中做,但因为我从来没有使用过我自己的服务,所以我觉得 android.developers.com 有点亲友好,我很难让它工作。有人能告诉我如何实现上述目标吗?而且我的应用程序必须作为长期服务来监听它。所以即使我的应用程序不在前台。谢谢你的帮助。