Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当调用活动被销毁时,新活动上的Android getIntent为NULL_Java_Android_Android Lifecycle - Fatal编程技术网

Java 当调用活动被销毁时,新活动上的Android getIntent为NULL

Java 当调用活动被销毁时,新活动上的Android getIntent为NULL,java,android,android-lifecycle,Java,Android,Android Lifecycle,你们有解决以下问题的方法吗 在注册活动的onDestroy中(当用户按下back按钮时),我调用一个新活动,以便用户可以输入当天的一些最终生产数据,然后通过电子邮件发送报告。问题是,在刚刚启动的活动中,对getIntent的调用返回null,我必须从那里获取数据 public void onDestroy(){ //unregister listeners, cancel timers etc. logOff(); super.onDestroy(); } protected v

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

在注册活动的onDestroy中(当用户按下back按钮时),我调用一个新活动,以便用户可以输入当天的一些最终生产数据,然后通过电子邮件发送报告。问题是,在刚刚启动的活动中,对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();
}
public AKSProductionNumber(){
Intent Intent=getIntent();//尝试将此

 Intent intent = getIntent(); // <-- returns null
    Bundle extras = intent.getExtras();
Intent-Intent=getIntent();//试着把这个

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

Intent-Intent=getIntent();//事实上,我想我知道你的问题所在。我相信你正在打这个电话:

 public AksProductionNumbers()

在您的活动构造函数中(如您在问题中所述),您应该在活动的
onCreate
方法中创建它。
getIntent
将在构造函数中返回null。

实际上,我想我知道您的问题所在。我相信您正在进行此调用:

 public AksProductionNumbers()

当你应该在活动的
onCreate
方法中创建它时,在你的活动构造函数中(如你在问题中所述)。
getIntent
将在构造函数中返回空值。

我认为这是一个糟糕的UI。在Android应用程序中,没有什么比点击后退按钮而不进入上一个活动更让我讨厌的了(或主屏幕,如果没有以前的活动)。发布更多代码和日志,以便我们更好地理解问题。我认为您应该将此Intent Intent=getIntent();Bundle extras=Intent.getExtras();放在“onCreate()上”关于新活动,您应该阅读更多有关活动生命周期的信息,即何时注册和注销侦听器。@Eran,用户正在结束活动,在这一点上(确切地说),我们想知道一些数据(仅在这一点上可用)。当你关闭一个程序时,它就像一个弹出窗口,询问“你想把文件保存在哪里”。这是一个高度特定的商业应用程序,不是一个普通的play store应用程序。另一个选择是屏幕上的一个按钮来结束注册,但这会使后退按钮的动作不清楚和不明确。我认为这是一个糟糕的UI。我没有任何东西可以选择Android应用程序中的te比点击后退按钮而没有到达上一个活动(或主屏幕,如果没有上一个活动)。发布更多代码和日志,以便我们更好地理解问题。我认为您应该将此Intent Intent=getIntent();Bundle extras=Intent.getExtras();放在“onCreate()上”关于新活动,您应该阅读更多有关活动生命周期的信息,即何时注册和注销侦听器。@Eran,用户正在结束活动,在这一点上(确切地说),我们想知道一些数据(仅在这一点上可用)。当您关闭程序时,将其视为一个弹出窗口,询问“您想将文件保存到哪里”。这是一个高度特定的商业应用程序,而不是常规的play store应用程序。另一种选择是屏幕上的一个按钮,用于结束注册,但这将使后退按钮的操作不清楚且不明确。