通过PendingIntent调用的活动会自动销毁(Activity called via PendingIntent getting destroyed automatically)
我有一个活动 ,在清单中设置了以下特殊属性
<activity android:name=".LightUp" android:excludeFromRecents="true" android:launchMode="singleInstance" android:noHistory="true" android:process=":listener" android:taskAffinity="" > </activity>
在这个活动中,我安排了一个AlarmManager来使用这个PendingIntent在某个时间之后调用它自己。 AlarmManager是必要的,因为电话会在屏幕上显示此活动时进入睡眠状态,而我不想持有唤醒锁。
pendingIntent = PendingIntent.getActivity(this, 10, new Intent(this, LightUp.class) .setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT), PendingIntent.FLAG_UPDATE_CURRENT);
所以当Alarm manager触发时,我像往常一样在onNewIntent()函数中获得新的Intent。 这意味着即将进行同样的活动。 问题是活动在onNewIntent之后被破坏。 即使我在onNewIntent中完全没有代码,我仍可以从日志中看到onDestroy无论如何都会被调用。
所以问题是为什么Destroy被召唤? 我该怎么做才能让活动继续运行?
I have an Activity with following special properties set in manifest
<activity android:name=".LightUp" android:excludeFromRecents="true" android:launchMode="singleInstance" android:noHistory="true" android:process=":listener" android:taskAffinity="" > </activity>
Inside this activity, I'm scheduling an AlarmManager to use this PendingIntent to call itself after sometime. AlarmManager is necessary because phone will go to sleep while this activity is on screen, and I don't want to hold a wakelock.
pendingIntent = PendingIntent.getActivity(this, 10, new Intent(this, LightUp.class) .setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT), PendingIntent.FLAG_UPDATE_CURRENT);
So when Alarm manager fires, I'm getting the new Intent in onNewIntent() function as usual. Which means intent is coming to same activity. Problem is the activity gets destroyed after onNewIntent. Even if I have absolutely no code in onNewIntent, I can see from logs that onDestroy is getting called anyway.
So question is why is Destroy being called? What can I do to keep the activity running?
原文:https://stackoverflow.com/questions/32912291
相关问答
更多-
Google Chrome浏览器不想使用mediaelement.js播放mp4(Google Chrome does not want to play mp4 using mediaelement.js)[2024-01-20]
如果您尝试在控制台中执行$("video").get(0).currentSrc或等价物,您将看到非mediaelement.js版本正在播放Webm视频,Chrome可以播放得很好,但如果您看看它试图播放MP4的mediaelement.js版本中的相同内容。 然后,如果你看看$("video").get(0).error你会看到你有一个MediaError。 检查一下,你会发现它有“代码4”。 根据规范,这是MEDIA_ERR_SRC_NOT_SUPPORTED。 现在,试试$("video").get ... -
从Videos文件夹播放.mov视频时出错(使用MediaElement)(Error playing a .mov video from Videos folder (using MediaElement))[2022-02-04]
你什么时候调用SetupVideoAsyncAndPlay? 我记得有同样的问题并通过确保MediaElement初始化仅在它被加载到VisualTree之后(在收到Loaded事件之后)完成它来解决它。 希望有所帮助。 When are you calling SetupVideoAsyncAndPlay? I remember having the same problem and resolved it by making sure that the MediaElement initializati ... -
您不能将视频作为资源嵌入到程序集中,而是从MediaElement中播放它。 https://social.msdn.microsoft.com/Forums/vstudio/en-US/150cb4e7-9107-4d07-8c81-6c2ef9734529/how-to-play-a-wmv-file-as-a-embed-resource-在-resourceresx与- MediaElement的-而不是内容?论坛= WPF 您可能能够做的最接近的事情是将文件添加为content并从文件系统中播放, ...
-
我诊断这个的第一步是: - 停止使用铬。 让它在IE中工作,然后测试其他浏览器。 停止使用完整的URL。 鉴于XAP,主机页面和资源都在同一台服务器上,我们知道我们不应该需要它,所以不要使用它。 不要使用在登台服务器上运行的浏览器,使用其他客户端计算机进行测试。 在客户端计算机上安装Fiddler2作为服务器信息建议并查看实际请求的内容。 你试过“/assets/126.mp4”而不是“assets / 126.mp4”吗? 如果从一个看起来不错的URL获取404检查服务器mime映射,是否有.mp4的映射 ...
-
所以事实证明他们向我们发送了嵌入到AVI容器中的H.264编码视频。 这有点难看, MediaElement也不支持。 切换到合适的MPEG-4容器解决了这个问题。 不幸的是,我们无法找到指向正确方向的日志或异常细节,因此试验和错误就可以了。 So it turned out that they sent us H.264 encoded videos, embedded into an AVI container. This is kind of ugly and not supported by the ...
-
媒体源应该来自您的文件系统示例 mediaElement.Source = new Uri(@"C:\User\Admin\Images\Wildlife.wmv") the media source should be from your file system example mediaElement.Source = new Uri(@"C:\User\Admin\Images\Wildlife.wmv")
-
只需将autoplay作为属性添加到视频标记即可。 Just add autoplay as attribute to the video tag.
-
经过大量的研究,似乎我试图做的事情可能是不可能的。 WPF MediaElement控件(和Windows Media Player)似乎支持通过网络播放视频,但不支持从流中播放视频。 请参阅MSDN上的以下主题: https : //social.msdn.microsoft.com/Forums/vstudio/en-US/e90b7e73-62b2-40b2-a725-4b60e02d65a1/play-video-stream-in-wpf? forum =wpf 我仍然在寻找一个可以播放视频流的W ...
-
如果其他人需要这样做,我想出来了。 我只是创建了一个Canvas并将MediaElement和Button都粘贴在Canvas中。 然后,我使用ZIndex更改ZOrdering,以便按钮位于顶部。 最后,我将按钮置于电影的顶部。 这是XAML:
-
以下代码可以毫不拖延地工作,有必要添加一个停止命令。 private static OpenFileDialog OpenFile() { OpenFileDialog ofd; ofd = new OpenFileDialog(); ofd.AddExtension = true; ofd.DefaultExt = "*.*"; ofd.Filter = ...