我有一个应用程序,它使用服务在后台获取数据,无论是在应用程序运行的时候还是在它不运行的时候。当它不运行时,我希望在有新数据时显示通知,而不是在应用程序运行时显示。
如何在我的服务中确定应用程序是否正在运行?
发布于 2010-01-05 01:29:42
我想您应该检查一下是否显示了某个活动。如果这是真的,我将使用Activity.onCreate()方法在应用程序实例中设置一个标志,即使用字段"uiRunning“扩展类应用程序,并在您的服务中选中此字段。onDestroy()应该用来取消属性的标记。不要忘记也在Manifest.xml中使用您的应用程序类
发布于 2010-01-05 01:39:41
我同意对单个活动应用程序使用onCreate()/onDestroy(),尽管具有多个活动的应用程序最好使用Application.onCreate()/onTerminate(),以避免在切换活动时触发uiRunning状态。
发布于 2010-01-05 09:29:58
这非常简单。您可以使用命名的Mutex。
将此代码放入您要检查的应用程序中:
bool createdNew;
Mutex mutex = new Mutex(true, @"Global\YourAppNameHere", out createdNew);
if (createdNew)
{
var app = new YourProcess();
app.run();
mutex.Close();
}
将此代码放入检查以确保其他应用程序正在运行的应用程序中:
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");
}
https://stackoverflow.com/questions/2003503
复制