当前位置: 首页 > 知识库问答 >
问题:

创建多个pendingIntent

拓拔嘉运
2023-03-14

如果不检查If语句中的myRange值,它不会给出错误,但不会创建pendingIntent2和PendingIntent3。

我尝试发送不同的请求代码,但它没有工作。

  private PendingIntent createGeofencePendingIntent(int myRange) {
    Log.d(TAG, "createGeofencePendingIntent");
    Toast.makeText(getContext(),"creating intent function" + myRange ,Toast.LENGTH_SHORT).show();

    if ( geoFencePendingIntent1 != null && myRange == 1)
        return geoFencePendingIntent1;
    if ( geoFencePendingIntent2 != null  && myRange == 2 )
        return geoFencePendingIntent2;
    if ( geoFencePendingIntent3 != null  && myRange == 3)
        return geoFencePendingIntent3;

    if(myRange == 1)
      {
         Toast.makeText(getContext(),"creating intent 1",Toast.LENGTH_SHORT).show();
          Intent intent1 = new Intent( getContext(), GeofenceTransitionService.class);
          intent1.putExtra("region",inString[0]);
           geoFencePendingIntent1 = PendingIntent.getService(
                  getContext(), GEOFENCE_REQ_CODE, intent1, PendingIntent.FLAG_UPDATE_CURRENT );
            return geoFencePendingIntent1;
      }
    else if (myRange ==2)
        {
            Toast.makeText(getContext(),"creating intent 2",Toast.LENGTH_SHORT).show();
            Intent intent2 = new Intent( getContext(), GeofenceTransitionService.class);
            intent2.putExtra("region",inString[1]);
            geoFencePendingIntent2 =  PendingIntent.getService(
                    getContext(), 5, intent2, PendingIntent.FLAG_NO_CREATE );
            return geoFencePendingIntent2;
        }
    else if (myRange == 3)
        {
            Intent intent3 = new Intent( getContext(), GeofenceTransitionService.class);
            return PendingIntent.getService(
                    getContext(), GEOFENCE_REQ_CODE, intent3, PendingIntent.FLAG_UPDATE_CURRENT );

        }




    geoRange++;
   // Toast.makeText(getContext(), "leaving my geofence", Toast.LENGTH_SHORT).show();
    return null;
}

共有1个答案

卢伟志
2023-03-14

你这里有几个问题。第一个是这样的:

       geoFencePendingIntent2 =  PendingIntent.getService(
                getContext(), 5, intent2, PendingIntent.FLAG_NO_CREATE );

这可能总是返回null,因为您指定了flag_no_create。如果匹配的pendingintent已经存在(它很可能不存在),则只返回非null结果。请改用flag_update_current

第二个问题是,您需要确保您的3个不同的pendingintent中的每一个都是唯一的。为此,您需要在对PendingIntent.GetService()的调用中提供唯一的RequestCode或者在传递给PendingIntent.GetService()Intent中提供唯一的操作。否则,当您调用PendingIntent.getService()时,您将继续得到相同的PendingIntent返回(并且不会创建新的)。

 类似资料:
  • 问题内容: 我想用Python(不是数组)中的一个创建10个变量。像这样: 我想创建的变量名,在这种情况下: ,,,…, 我不想一个数组 我有一个坐标图(640 x 480)。我正在确定像素颜色为白色的坐标。地面上有3个球,我想获取每个球的中心坐标,因此,如果要评估的坐标距离最后一个球很近,则x和y坐标将被平均(如果该坐标属于a)新球的坐标将属于新坐标组。 问题答案: 您不应该这样做,但是如果您真

  • 问题内容: 我需要一次创建多个表。我很难找出正确的方法来完成此任务。目前,我的脚本如下所示: 显然,这是行不通的,并且不会创建任何表。有一种简单的方法可以一次创建多个表吗? 问题答案: MySQL变得令人困惑,因为您没有划定查询范围。在第一条语句后添加分号: 另外,根据Heredoc文档,请确保位于行的开头, 没有其他字符,除了分号外 。 鉴于上述方法似乎无效,请尝试以下代码: 您 可以 使用(M

  • 我用Python和PygameZero创建了一个游戏。当用户达到200点时,屏幕会出现一个按钮。当用户单击按钮(下一个级别)时,应该会出现一个新的级别。我尝试用gamemode=3和gamestart=1来管理它(见代码)。但是当用户单击“下一个级别”时,什么都不会发生。那么,我如何添加多层次?

  • 我知道在最新版本的Mongoose中,您可以将多个文档传递给create方法,在我的例子中,甚至可以传递一个文档数组。 我的问题是数组的大小是动态的,所以在回调中创建一个对象数组会很有帮助。 文档中没有,但这样做可能吗?

  • 所以我不确定是0还是2。 如果有人知道请告诉我。

  • 我需要创建一个带有分页的HTML表。数据来自两个不同的来源(可能是来自两个不同数据库的两个表,比如一个Oracle,另一个是MySQL),您不能使用JOIN select语句。为了使它更复杂,我需要以升序显示按时间戳排序的数据(其中一个属性是timestamp)。 例如,源A有45条记录,源B有55条记录。因此,该表将显示总共100条记录,但一次只显示15条记录。因此必须有7页(6页15条记录,1