簡體   English   中英

Android 廣播接收器不工作

[英]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_OFFACTION_BATTERY_CHANGED ,也許還有ACTION_USER_PRESENT )。

如果通過清單文件注冊,ACTION_SCREEN_ON 將不起作用。 您需要動態注冊它。

也許您忘記在

<application>標簽:

<service android:name=".YourService" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM