まず、質問を検索したところ、約 2 ~ 3 個のスタック オーバーフロー リンクが見つかりましたが、明確な答えが得られません。マニフェストにブロードキャスト レシーバーを登録しました。
<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は少しプロに優しいです.私はそれを機能させるのに苦労しています.誰かが私に上記を達成する方法を教えてもらえますか?そして私のアプリは長いサービスとしてそれをリッスンする必要があります.だから私のアプリがフォアグラウンドにないときでも.あなたの助けに感謝します.