我认为Xamarin Forms没有给出一个api来获取应用程序的状态。
可以通过在Xamarin.forms中使用dependencyservice
来实现:
首先在PCL项目中定义接口:
public interface IGetAppState
{
bool appIsInBackground();
}
[assembly: Dependency(typeof(GETAppState_iOS))]
namespace App129.iOS
{
public class GETAppState_iOS : IGetAppState
{
public bool appIsInBackground()
{
UIApplicationState state = UIApplication.SharedApplication.ApplicationState;
bool result = (state == UIApplicationState.Background);
return result;
}
}
}
[assembly: Dependency(typeof(GETAppState_Android))]
namespace App129.Droid
{
public class GETAppState_Android : IGetAppState
{
public bool appIsInBackground()
{
bool isInBackground;
RunningAppProcessInfo myProcess = new RunningAppProcessInfo();
GetMyMemoryState(myProcess);
isInBackground = myProcess.Importance != Importance.Foreground;
return isInBackground;
}
}
}
bool isInBackground = DependencyService.Get<IGetAppState>().appIsInBackground();
如果我的应用在后台运行(服务),我偶然发现了一个接收GCM消息的问题。在我的场景中,我没有收到GCM消息(请注意,这不是关于如何接收GCM,就像这里一样),并且ActiveManager会杀死应用程序。所以我想知道我是否有概念上的误解,或者这是一个普遍的问题。 出身背景 我有一个在前台(活动)和后台(服务)运行的Android应用程序。应用程序将附加到持久性通知,以确保即使用户打开 Android
这是苹果公司设计的吗?或者我错过了一些我可以申请的设置?
我已使用zo0r/React本机推送通知在我的React本机应用程序上设置推送通知。它可以在Android系统上运行,当应用程序处于后台模式时,也可以在iOS上运行。 但是,当应用程序在iOS的前台模式下时,不会显示通知。我知道我必须在前台模式下处理通知,但我希望它们的显示方式与在后台模式下的显示方式完全相同。 所以我做了以下几件事: 但是什么都没发生,通知还是没有显示,我到底错过了什么?
我想在通知屏幕上显示通知,无论应用程序是在后台还是前台。我为寻找解决办法而疲惫不堪。非常感谢任何帮助。
当应用程序在后台时,如何更新包含数据负载的Firebase推送通知?有没有办法在通知中指定通知id给Firebase API? 完整的项目在github https://github.com/akshatashan/FireBaseCloudMessagingDemo中
我的应用程序有推送通知(FCM)。当应用程序在前台运行时,我可以在onMessageReceived()函数中获取数据负载。当应用程序在后台运行或应用程序完全关闭时,不会调用onMessageReceived()函数。我的问题是,当app在后台或关闭时,是否可能获得数据有效载荷? 提前道谢!