LEO*_*LEO 6 notifications android android-intent destroy android-activity
SETUP One Activity,SingleTop,从通知中接收意图.意图由活动消耗.用户点击后退按钮结束活动.调用onDestory并且isFinishing()返回true.长按Home键以显示最近的应用程序.启动先前已关闭的应用
当用户在活动上按下主键时调用onStop时,onNewIntent会出现类似的情况.
问题在完成活动后重新创建活动时,将使用与通知相同的意图.我不想要这个.有没有办法告诉系统我们已经消耗了该通知,因此停止将其提供给活动?解决?建议?
我试过了什么
这个问题非常类似于以下问题:http://grokbase.com/t/gg/android-developers/119jyzf492/getintent-removeextra-in-activity-doesnt-work-for-android-launchmode-"singletask"
听起来您用来启动 Activity 的 Intent 可能已作为“粘性”Intent 进行广播。粘性意图使意图即使在被消耗后也可用。如果是这种情况,您的应用程序将获得之前使用的相同 Intent。如果您可以检查正在广播该意图的任何内容,看看它是否是粘性意图。您将在清单中看到这一点:
<uses-permission android:name="android.permission.BROADCAST_STICKY"/>
Run Code Online (Sandbox Code Playgroud)
它将通过以下方法发送:
sendStickyBroadcast(intent);
Run Code Online (Sandbox Code Playgroud)
如果您没有能力更改它(如果不是您的应用程序调用它),那么您可能只需要找到一种适合您的应用程序的方法来处理它。这只是一种可能性,没有看到任何代码。
| 归档时间: |
|
| 查看次数: |
2036 次 |
| 最近记录: |