Android 的 C2DM 服务允许向应用程序发送消息,无论应用程序是否处于活动状态。也就是说,即使用户当前正在使用应用程序,或者应用程序正在后台运行,设备也可以接收消息。
当您收到来自 C2DM 服务器的消息时,首先检查您的 C2DMReceiver 类,如果您的应用程序在后台运行,如果是,则在通知(状态栏)中显示消息,否则您可以通过 Toast 或 AlertDialog 框显示消息。
以下代码可以检查 App 是否在后台运行:
public static boolean isApplicationInBackground(final Context context) {
final ActivityManager am = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
final List<RunningTaskInfo> tasks = am.getRunningTasks(1);
if (!tasks.isEmpty()) {
final ComponentName topActivity = tasks.get(0).topActivity;
if (!topActivity.getPackageName().equals(context.getPackageName())) {
return true;
}
}
return false;
}
谢谢 :)