首页 安全防御正文

判断app是否在使用(如何看待手机app)

如何判断某个app 在后台运行

IsRunning教程:提示哪些是后台正在运行的App应用。iPhone等iOS设备,虽然有多任务管理器即后台,但是由于其系统特殊性,即便你在后台看到的APP应用,未必是正在运行中的应用。那么到底哪些应用在运行呢?能否一眼就能找出正在运行中的APP呢?IsRunning是一款让后台运行的应用程序可以显示角标的越狱插件。就是说如果某个APP应用正在后台运行,那么在主屏幕上该应用的icon角标上会出现一个显现“R”的角标。当然这个“R”只是默认显示的字符,该插件也允许你修改它,可以自定义成中文和英文,不过中文只限制2个汉字,英文限制5个字符。并且它并不影响系统原生的角标提醒显示。免费安装IsRunning:1. 首先你的设备必须是已越狱的 (查看越狱教程),先开启 Cydia,在底部选【搜索】,然后在搜索框中输入IsRunning。提示:如果搜索不到IsRunning,可以进入Cydia—【变更】—点击左上角【刷新】—再搜索该插件。2. 进入后按右上角的【安装】,然后点击【确认】,便会自动开始安装。如何使用IsRunning:如下图所示,进入【设置】→【IsRunning】,可进行相关设置操作:注意:该插件还是有一些不足之处,例如若你将APP应用放入文件夹内,那么需要点击打开文件夹才能看到正在运行的APP角标“R”提示,不然在主屏幕上是看不到的,也就是说它并不支持文件夹显示运行角标“R”。

Android 判断app何时是打开或者关闭的技术研究

判断一个app打开和关闭的关键在于判断它的activities是否正在前台显示。让我们先从简单的例子开始,一个只有一个activity的app,而且不支持水平模式。这样想要判断app是打开还是关闭只需要检查activity的onStart和onStop *** 即可:

@Override

protected void onStart() {

super.onStart();

// The Application has been opened!

}

@Override

protected void onStop() {

super.onStop();

// The Application has been closed!

}

上面例子的问题在于当需要支持水平模式时该 *** 就失效了。当我们旋转设备时activity将会重建,onStart *** 将被再次调用,这时将会错误的判断为app第二次被打开。

为了处理设备旋转的情况,我们需要增加一个校验步骤。当activity退出时启动一个定时器,用于判断短时间内app的这个activity是否又被启动,如果没有,说明用户真的退出了这个app,如果重新启动了这个activity,说明用户还逗留在这个app中。

这种校验方式也适用于拥有多个activities的app,因为从app的一个activity跳转到另一个activity也可以用这种校验方式来处理。

使用这个技术我创建了一个管理类,所有的activities在可见和不可见时都会通知这个管理类。这个管理类为每个activity处理上述的校验步骤,从而避免错误的检测。它也提供了发布订阅(观察者)模式,任何对app启动和关闭感兴趣的模块都可以通过它来得到对应的通知。

怎么判断App是否在运行

判断Activity是否在运行(可见):

判断Service是否在运行:

*** :

ios 怎样知道app是否运行

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

说明:当应用程序启动时执行,应用程序启动入口。只在应用程序启动时执行一次。application参数用来获取应用程序的状态、变量等,值得注意的是字典参数:(NSDictionary *)launchOptions,该参数存储程序启动的原因。

1.若用户直接启动,lauchOptions内无数据;

2.若由其他应用程序通过openURL:启动,则UIApplicationLaunchOptionsURLKey对应的对象为启动URL(NSURL),UIApplicationLaunchOptionsSourceApplicationKey对应启动的源应用程序的bundle ID (NSString);

3.若由本地通知启动,则UIApplicationLaunchOptionsLocalNotificationKey对应的是为启动应用程序的的本地通知对象(UILocalNotification);

4.若由远程通知启动,则UIApplicationLaunchOptionsRemoteNotificationKey对应的是启动应用程序的的远程通知信息userInfo(NSDictionary);

其他key还有UIApplicationLaunchOptionsAnnotationKey,UIApplicationLaunchOptionsLocationKey,

UIApplicationLaunchOptionsNewsstandDownloadsKey。 如果要在启动时,做出一些区分,那就需要在下面的代码做处理。 比如:应用可以被某个其它应用调起(作为该应用的子应用),要实现单点登录,那就需要在启动代码的地方做出合理的验证,并跳过登录。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

NSURL *url = [options objectForKey:UIApplicationLaunchOptionsURLKey];

if(url)

{

}

NSString *bundleId = [options objectForKey:UIApplicationLaunchOptionsSourceApplicationKey];

if(bundleId)

{

}

UILocalNotification * localNotify = [options objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];

if(localNotify)

{

}

NSDictionary * userInfo = [options objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];

if(userInfo)

{

}

}

android 判断某个应用是否正在运行

在手机安全中心或者手机管理中心可以看见后台管理,点击进去就会看见;还有一种 *** 就是在手机设置中,应用程序中就可以看见。

查看正在运行软件的 *** :

打开手机设置。

在设置中找到应用选项,点击应用。

应用里会看见应用程序,点击进去。

看到个人应用、系统应用、正在运行三栏。

点击正在运行就会看到所有正在运行的软件了。

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。