0
我已经正确设置Google Cloud Messaging for Android并接收来自我的服务器的通知。但是,如果应用程序处于打开状态,但我想避免发出通知,但要获取数据并在应用程序中通知用户。请查看下面我GcmIntentService,该通知被处理:GCM Android通知当应用程序打开
@Override
protected void onHandleIntent(Intent intent) {
Bundle extras = intent.getExtras();
GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(this);
String messageType = gcm.getMessageType(intent);
if (!extras.isEmpty()) {
if (GoogleCloudMessaging.MESSAGE_TYPE_MESSAGE.equals(messageType)) {
if(MainActivity.app_is_open){
// I would like to call a function from MainActivity to fetch data here
} else
// Sends notification here
}
}
GcmBroadcastReceiver.completeWakefulIntent(intent);
}
我无法从MainActivity引用功能,因为他们都是非静态的。什么是常用方法?我很难找到与这种情况有关的任何问题。
我设置了一个布尔值来知道应用程序是否正在运行。这不是我正在问的,但另一方面, – GameDevGuru
,你可以创建一个静态方法,无论你想要的,我不知道你想如何注意用户,如果它是一个吐司/对话或任何一种对于需要上下文的视图,您可以在意图中使用getApplicationContext()来获取它。如果您使用的是数据库,您也可以在活动中调用静态方法并处理该事件,只需考虑更新UI中的更改所需的参数(在MainActivity中)。 –