我有一个BroadcastReceiver
用于处理新的或修改的应用程序:
<receiver android:name=".PackageHandler" >
<intent-filter>
<action android:name="android.intent.action.PACKAGE_ADDED" />
<action android:name="android.intent.action.PACKAGE_CHANGED" />
<action android:name="android.intent.action.PACKAGE_REPLACED" />
<data android:scheme="package" />
</intent-filter>
</receiver>
当收到一个意图时,我会显示一个包含一些包信息的通知。我的问题是,当我添加一个新应用程序时,例如在调试时,从 接收到两个意图PackageHandler
,因此显示两个通知。为了说明,BroadcastReceiver
处理讨论的意图的 this 将在每次发送意图时显示一个logcat条目,这是我更新应用程序时的两次:
public class PackageHandler extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.i("", "Intent Received: " + intent.getAction());
if (intent.getAction().equals(Intent.ACTION_PACKAGE_ADDED)) {
Log.i("Intent Received", intent.getAction());
}
else if (intent.getAction().equals(Intent.ACTION_PACKAGE_REPLACED)) {
Log.i("Intent Received", intent.getAction());
}
else if (intent.getAction().equals(Intent.ACTION_PACKAGE_CHANGED)) {
Log.i("Intent Received", intent.getAction());
}
}//onReceive
}//PackageHandler
但是,我需要一个解决方案来跟踪已经显示的日志消息(来自处理不同的意图)。从通知的角度来看,我还可以选择在显示后删除额外的通知。有没有人有一个可行的解决方案?请注意,我支持 API 1.5。