首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何确定我的应用程序何时运行?

如何确定我的应用程序何时运行?
EN

Stack Overflow用户
提问于 2010-01-05 09:11:19
回答 7查看 1.2K关注 0票数 4

我有一个应用程序,它使用服务在后台获取数据,无论是在应用程序运行的时候还是在它不运行的时候。当它不运行时,我希望在有新数据时显示通知,而不是在应用程序运行时显示。

如何在我的服务中确定应用程序是否正在运行?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2010-01-05 09:29:42

我想您应该检查一下是否显示了某个活动。如果这是真的,我将使用Activity.onCreate()方法在应用程序实例中设置一个标志,即使用字段"uiRunning“扩展类应用程序,并在您的服务中选中此字段。onDestroy()应该用来取消属性的标记。不要忘记也在Manifest.xml中使用您的应用程序类

票数 1
EN

Stack Overflow用户

发布于 2010-01-05 09:39:41

我同意对单个活动应用程序使用onCreate()/onDestroy(),尽管具有多个活动的应用程序最好使用Application.onCreate()/onTerminate(),以避免在切换活动时触发uiRunning状态。

票数 0
EN

Stack Overflow用户

发布于 2010-01-05 17:29:58

这非常简单。您可以使用命名的Mutex。

将此代码放入您要检查的应用程序中:

代码语言:javascript
运行
复制
bool createdNew;
Mutex mutex = new Mutex(true, @"Global\YourAppNameHere", out createdNew);
if (createdNew)
{
    var app = new YourProcess();
    app.run();
    mutex.Close();
}

将此代码放入检查以确保其他应用程序正在运行的应用程序中:

代码语言:javascript
运行
复制
bool createdNew;
Mutex mutex = new Mutex(true, @"Global\YourAppNameHere", out createdNew);
if (createdNew)
{
    Console.WriteLine("App not running");
    mutex.Close();
} else {
    Console.WriteLine("App is running");
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2003503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档