你们有解决以下问题的方法吗?
在注册活动的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);
}
=============================================== ================================ 构造函数称为activity:
public AksProductionNumbers(){
Intent intent = getIntent(); // <-- returns null
Bundle extras = intent.getExtras();
}
函数getIntent返回null。我认为这是因为调用活动已经死了,但我认为这很奇怪,因为我明确要求框架在关闭当前之前启动新活动。 有谁知道这个问题的解决方法?我选择了这个解决方案,所以我没有必要覆盖&#39;返回&#39;按钮。 另一种解决方案是阻止调用线程,直到它从启动应用程序获得解除阻塞信号,但我认为这也是丑陋的。第三个数据管理器类也可以解决数据源问题。 感谢您的想法和建议!
答案 0 :(得分:4)
实际上,我想我知道你的问题是什么。我相信你正在接听这个电话:
public AksProductionNumbers()
在您的活动构造函数中(正如您在问题中所述)当您应该在活动的onCreate
方法中进行此操作时。 getIntent
将在构造函数中返回null。
答案 1 :(得分:0)
尝试把这个
Intent intent = getIntent(); // <-- returns null
Bundle extras = intent.getExtras();
on&#34; onCreate()&#34;新活动的方法