判断当前app是不是被禁止使用网络
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了判断当前app是不是被禁止使用网络相关的知识,希望对你有一定的参考价值。
参考技术A 之前看到某款app,当我开着4G网络但是禁止该app访问网络时,该app会提示我前往设置页面开启数据访问权限,后来在一本书上找到了一个解决方案。原理其实不难,首先导入头文件<objc/message.h>,状态栏是由当前app控制的,获取当前app后遍历所有属性,找到关于状态栏的
输出得到app的所有属性和变量,很明显statusBar就是状态栏的,然后我们一层层往下剥,这里我就不一一赘述了,最后获取到的dataNetworkType就是当前网络状态
经过测试,发现,可能的值为 1,2,3,5 分别对应的网络状态是2G、3G、4G及WIFI。 当没有网络时,隐藏UIStatusBarDataNetworkItemView,无法获取dataNetworkType值。
如何判断窗口是不是被释放
【中文标题】如何判断窗口是不是被释放【英文标题】:How to determine if window is disposed如何判断窗口是否被释放 【发布时间】:2011-04-27 10:55:25 【问题描述】:当应用程序关闭时,我在 WPF MainWindow1.Xaml 中有一个函数。但在未知情况下,用户可以使用“文件 > 关闭”按钮以另一种方式关闭应用程序。我只需要在“关闭”方法中知道当前 MainWindow1.xaml 是否已经被释放。但我找不到任何财产。
你能帮帮我吗?
【问题讨论】:
【参考方案1】:你可以试试
var source = PresentationSource.FromVisual(yourWindow)
如果source
为空或source.IsDisposed == true
,则表明您的窗口已关闭。
【讨论】:
source.IsDisposed
将始终为false
,否则PresentationSource.FromVisual
将不会返回源代码。【参考方案2】:
您可以附加到Window
上的Closed
事件。 当这个事件被调用时,窗口关闭。实际上我必须更正:根据the MSDN documentation,这仅意味着您无法阻止在调用此事件时关闭窗口。
如果收听Closed
事件不够好,那么这是另一种选择:How do you tell if a WPF Window is closed?
【讨论】:
感谢您的回复 ChrisWue。我会这样尝试:` schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="schemas.microsoft.com/winfx/2006/xaml" x:Class="SDKSample.App" ShutdownMode="OnExplicitShutdown" /> ` 与 MainWindow1.IsLoaded 属性.. . 不起作用。查看这里的情况:link 我认为您正在尝试在窗口已经关闭时调用Close
。我不确定你的目标是什么,也许你可以解释更多。以上是关于判断当前app是不是被禁止使用网络的主要内容,如果未能解决你的问题,请参考以下文章