myRange的值始終爲1,2或3.創建多個pendingIntent
它給出了一個空指針異常error.pending必須指定。
如果我不檢查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;
}
你可以發佈logcat堆棧跟蹤嗎? –