[英]Android Broadcast Receiver Not Working
我試圖讓我的應用程序在屏幕打開時打印一些要記錄的內容,但它沒有按我的預期工作。
這是我的清單文件中的內容
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity ...>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name="PhoneBroadcastReceiver" android:enabled="true">
<intent-filter>
<action android:name="android.intent.action.SCREEN_ON"></action>
</intent-filter>
</receiver>
</application>
我的接收器看起來像
public class PhoneBroadcastReceiver extends BroadcastReceiver {
public PhoneBroadcastReceiver()
{
}
@Override
public void onReceive(Context _context, Intent _intent) {
// TODO Auto-generated method stub
String a = _intent.getAction();
MessageHandler.log("Received action: " + a); // just a wrapper for printing to a log
}
}
但它不會在日志中打印任何內容。 我一直按我的 Android 電源按鈕,屏幕打開/關閉,但我的消息沒有出現在日志中。 我錯過了什么? 它看起來與我在 web 上找到的示例相同。
您無法通過清單中注冊的BroadcastReceiver
收聽ACTION_SCREEN_ON
廣播。 您必須通過正在運行的組件中的registerReceiver()
注冊它。 具有此特征的廣播很少( ACTION_SCREEN_OFF
, ACTION_BATTERY_CHANGED
,也許還有ACTION_USER_PRESENT
)。
如果通過清單文件注冊,ACTION_SCREEN_ON 將不起作用。 您需要動態注冊它。
也許您忘記在
<application>
標簽:
<service android:name=".YourService" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.