当调用 Activity 被销毁时,Android 新 Activity 上的 getIntent 为 NULL

2023-12-05

你们有解决以下问题的方法吗?

在注册活动的 onDestroy 中(当用户按下后退按钮时),我调用一个新活动,以便用户可以输入当天的一些最终生产数据,然后通过电子邮件发送报告。问题是,在刚刚启动的活动中,对 getIntent 的调用返回 null,我必须从那里获取数据。

public void onDestroy(){
  //unregister listeners, cancel timers etc.
  logOff();
  super.onDestroy();
} 

protected void logOff(){
  // collect data etc.
  // open new activity that asks for final production numbers
  Intent intent = new Intent(getBaseContext(), AksProductionNumbers.class);
  intent.putExtra("TimeSheetList", timeSheetList);
  startActivity(intent);
}

=================================================== ============================= 构造函数调用活动:

public AksProductionNumbers(){
    Intent intent = getIntent(); // <-- returns null
    Bundle extras = intent.getExtras();
}

函数 getIntent 返回 null。我认为这是因为调用活动已经死了,但我认为这很奇怪,因为我明确要求框架在关闭当前活动之前启动新活动。 有谁知道这个问题的解决方法?我选择了这个解决方案,这样我就不必覆盖“后退”按钮。 另一个解决方案是阻塞调用线程,直到它从启动应用程序获取解锁信号,但我认为这也很丑陋。第三个数据管理器类也可以解决数据源问题。 感谢您的想法和建议!


事实上,我想我知道你的问题是什么。我相信您正在拨打这个电话:

 public AksProductionNumbers()

在你的活动中构造函数(正如您在问题中所述)您何时应该在活动中进行onCreate方法。getIntent将在构造函数中返回 null。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当调用 Activity 被销毁时,Android 新 Activity 上的 getIntent 为 NULL 的相关文章

随机推荐