活动包缺少附加功能,即使它们应始终添加到 newIntance 方法中
Posted
技术标签:
【中文标题】活动包缺少附加功能,即使它们应始终添加到 newIntance 方法中【英文标题】:Activity bundle missing extras even though they should always be added in the newIntance method 【发布时间】:2020-03-27 22:13:47 【问题描述】:我的应用在生产中发生意外崩溃。我有一个活动,我总是开始使用 newInstance 方法,为意图添加一些额外内容:
public static Intent newInstance(final Context context, @NonNull final Location location)
final Intent intent = new Intent(context, LocationActivity.class);
final Bundle extras = new Bundle();
extras.putParcelable(BUNDLE_ITEM_LOCATION, Location);
intent.putExtras(extras);
return intent;
这是我的 onCreate 方法:
@Override
@CallSuper
public void onCreate(@Nullable final Bundle savedInstanceState)
super.onCreate(savedInstanceState);
final Bundle extras = getIntent().getExtras();
if (extras == null || !extras.containsKey(BUNDLE_ITEM_LOCATION))
throw new IllegalArgumentException(LocationActivity.class.getName()
+ " must be created by using newInstance()");
[... Some other code ...]
并且这个 IllegalArgumentException 在生产中被抛出。这非常奇怪,因为这种情况不应该发生。知道原因吗?
提前致谢。
【问题讨论】:
Location 是你的 Model 还是 android.location? @ParthivMistri 这是我的模特 @MohamedAshik 新实例方法和 onCreate 在同一个类中,因此请确保这是相同的最终字符串。 是的。你能分享一下你是如何调用这个 newInstance 方法来打开活动的吗? @MohamedAshik 就像 this.startActivity(LocationActivity.newInstance(location)); 【参考方案1】:试试这个:
public static Intent newInstance(final Context context, @NonNull final Location location
final Intent intent = new Intent(context, LocationActivity.class);
intent.putExtras(BUNDLE_ITEM_LOCATION, Location);
return intent;
【讨论】:
所以它可能来自捆绑包?我会试试这个谢谢! @DenisPinna 如果您仍然面临同样的问题,请告诉我。 @Patrhiv Mistri 显然这个变化仍然存在问题..以上是关于活动包缺少附加功能,即使它们应始终添加到 newIntance 方法中的主要内容,如果未能解决你的问题,请参考以下文章
如何将它们添加到字典中,并在python中每5个循环后使活动变量成为结尾?
R语言可视化散点图(scatter plot)图为图中的部分数据点添加标签始终显示所有标签,即使它们有太多重叠ggrepel包来帮忙
即使策略规则中缺少该属性,具有附加属性的 XACML 3.0 请求也匹配