推送通知会关闭我的应用

时间:2014-06-09 11:14:37

标签: android push-notification push powermanager

我在Android上玩游戏。我正在使用gcm推送通知,基本上我正在使用推送检查他们的内容,以便知道推送是否有赢家或输家值,如果有赢取值并且用户在屏幕上“等待结果”应用程序转到其他活动屏幕(等待或失败屏幕取决于推送值)。 架构是:

如果用户在等待屏幕上并且推送到推送屏幕值。

所有工作完全在Android 4.2.x上工作,但在4.1.x和最早(我支持的最后一个版本是2.3.6)在推送到来并且设备处于睡眠模式时不起作用,在这种情况下(api <16 ,推出来,设备处于睡眠模式)应用程序关闭,而不是只关闭错误,我需要再次启动它。为了解决这个问题,我已经编写了以下几行并强制应用程序正常工作,并且运行良好,但现在的问题是屏幕始终打开,永远不会进入睡眠模式,并且,您可以想象,如果你没有玩那个人,那么电池就会死得很快。 我的新实现问题的架构是:

当android版本&lt; 4.1.x和屏幕处于睡眠模式时。推送来,屏幕打开(始终)等待用户屏幕解锁。

我的问题是: 你有什么想法为什么应用程序关闭api&lt; 16? 你有另一个实现的想法吗?

在推送通知具有获胜值的情况下,GcmIntentService内部的此函数扩展了IntentService类的运行

     if(win){
         DataStore.userRefereeWin=true;

         if (currentUserSituation().contains("Waiting") &&  (android.os.Build.VERSION.SDK_INT < 16)){


             PowerManager pm = (PowerManager) getApplicationContext().getSystemService(Context.POWER_SERVICE);
             WakeLock wakeLock = pm.newWakeLock((PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP), "TAG");
             wakeLock.acquire();
         }

         sound = Uri.parse("android.resource://" + getPackageName() + "/" + whatWinSound());
         Intent recentAppIntent = new Intent(GcmIntentService.this, Win.class);
         recentAppIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
         contentIntent = PendingIntent.getActivity(getBaseContext(), 1, recentAppIntent, 0);





        }

感谢avenced

0 个答案:

没有答案