В Деятельности А я, по сути, имею:
Long customerId = 123;
intent.putExtra("customerId", customerId);
startActivity(intent);
А в действии B onCreate () я имею:
mCustomerId = getIntent().getLongExtra("customerId", -1);
Но для одного из моих пользователей (Nexus 4, Android 6.0.1) mCustomerId разрешается до -1 в действии B (-1 - значение по умолчанию). Этот код отлично работает для других моих 1000 пользователей.
У этого же пользователя есть похожая проблема, когда он получает дополнительное намерение в библиотеке, которую я использую:
https://github.com/Ereza/CustomActivityOnCrash/issues/56
Как это может произойти?
Вход:
Fatal Exception: java.lang.IllegalArgumentException
Update is not supported for content://appinventor.ai_GavinGT.TipTracker_9_1_426am_ready_for_market/customers/-1
appinventor.ai_GavinGT.DeliveryTipTrackerPro_ready_for_market.data.TipProvider.update (TipProvider.java:326)
android.content.ContentProvider$Transport.update (ContentProvider.java:355)
android.content.ContentResolver.update (ContentResolver.java:1364)
appinventor.ai_GavinGT.DeliveryTipTrackerPro_ready_for_market.customer_info.CustomerProfileActivity.saveChanges (CustomerProfileActivity.java:208)
appinventor.ai_GavinGT.DeliveryTipTrackerPro_ready_for_market.customer_info.CustomerProfileActivity.access$400 (CustomerProfileActivity.java:58)
appinventor.ai_GavinGT.DeliveryTipTrackerPro_ready_for_market.customer_info.CustomerProfileActivity$6.onDebouncedClick (CustomerProfileActivity.java:137)
appinventor.ai_GavinGT.DeliveryTipTrackerPro_ready_for_market.custom_classes.DebouncedOnClickListener.onClick (DebouncedOnClickListener.java:39)
android.view.View.performClick (View.java:5204)
android.view.View$PerformClick.run (View.java:21153)
android.os.Handler.handleCallback (Handler.java:739)
android.os.Handler.dispatchMessage (Handler.java:95)
android.os.Looper.loop (Looper.java:148)
android.app.ActivityThread.main (ActivityThread.java:5420)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:726)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:616)
Как вы можете видеть из второй строки журнала, -1 вставляется как rowId для таблицы клиентов, когда оно должно быть 123 (123 - просто пример, rowId может быть любым числом больше 0).
РЕДАКТИРОВАТЬ: я начинаю думать, что этот парень может ковыряться в моем приложении в АБР. Это объясняет, почему преднамеренные дополнения не доставляются:
Пользователь каким-то образом получает доступ к функциям Pro в бесплатной версии