Android 无法从gcminentservice.class启动活动
我有一个gcminentservice类,在该类中我从服务器返回一些消息。当某条消息到达我的应用程序时,我希望能够启动某项活动。例如,如果在我的onMessage()方法中(onMethod()是该方法,并且应用程序中从服务器接收消息的第一个位置)到达字符串=“tomatoe”,我想启动一个特定的活动。我现在知道的开始一项活动的方式是:Android 无法从gcminentservice.class启动活动,android,android-intent,android-activity,Android,Android Intent,Android Activity,我有一个gcminentservice类,在该类中我从服务器返回一些消息。当某条消息到达我的应用程序时,我希望能够启动某项活动。例如,如果在我的onMessage()方法中(onMethod()是该方法,并且应用程序中从服务器接收消息的第一个位置)到达字符串=“tomatoe”,我想启动一个特定的活动。我现在知道的开始一项活动的方式是: Intent resactivity = new Intent(getApplicationContext(), ResponseActivity.class)
Intent resactivity = new Intent(getApplicationContext(), ResponseActivity.class);
resactivity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(resactivity);
问题是gcminentservice不是一个扩展活动的类,我相信我不能将此代码用于此目的。是否有某种方法可以通过在非活动类中创建意图来从该类启动活动
问题是gcminentservice不是一个扩展活动的类,我相信我不能将此代码用于此目的
gcminentservice
继承自Context
,定义startActivity()
记住,你的用户可能会用叉叉或机关枪攻击你,以便在随机的时间点弹出活动,也许是在他们正在做的其他事情的中间。请将此行为设置为可配置的,或者非常确定您的用户会欣赏这些中断
问题是gcminentservice不是一个扩展活动的类,我相信我不能将此代码用于此目的
gcminentservice
继承自Context
,定义startActivity()
记住,你的用户可能会用叉叉或机关枪攻击你,以便在随机的时间点弹出活动,也许是在他们正在做的其他事情的中间。请将此行为设置为可配置的,或者非常确定您的用户会欣赏这些中断。我发布了我通常用于在通知到达我的应用程序时启动活动的方法。查看所有配置并删除您不感兴趣的配置:
@Override
protected void onMessage(Context context, Intent intent) {
String app_name = context.getString(R.string.app_name);
String message = intent.getStringExtra("payload");
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager notificationManager = (NotificationManager) context.getSystemService(ns);
int icono = R.drawable.ic_stat_notify;
long time = System.currentTimeMillis();
Notification notification = new Notification(icono, app_name, time);
notification.defaults |= Notification.DEFAULT_SOUND;
Intent notificationIntent = new Intent(context, ResponseActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, -1, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
notification.when = System.currentTimeMillis();
notification.flags |= Notification.FLAG_AUTO_CANCEL;
notification.setLatestEventInfo(context, app_name, message, pendingIntent);
notificationManager.notify(0, notification);
}
当通知到达我的应用程序时,我发布通常用于启动活动的方法。查看所有配置并删除您不感兴趣的配置:
@Override
protected void onMessage(Context context, Intent intent) {
String app_name = context.getString(R.string.app_name);
String message = intent.getStringExtra("payload");
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager notificationManager = (NotificationManager) context.getSystemService(ns);
int icono = R.drawable.ic_stat_notify;
long time = System.currentTimeMillis();
Notification notification = new Notification(icono, app_name, time);
notification.defaults |= Notification.DEFAULT_SOUND;
Intent notificationIntent = new Intent(context, ResponseActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, -1, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
notification.when = System.currentTimeMillis();
notification.flags |= Notification.FLAG_AUTO_CANCEL;
notification.setLatestEventInfo(context, app_name, message, pendingIntent);
notificationManager.notify(0, notification);
}
您应该能够这样做:
getApplication().startActivity(重新激活) 您应该能够这样做: getApplication().startActivity(重新激活)