Java 传入呼叫重置活动/片段中的EditText值

Java 传入呼叫重置活动/片段中的EditText值,java,android,android-studio,Java,Android,Android Studio,到目前为止,我发现Android的这种行为非常奇怪。 我创建了一个android应用程序来输入来自EditText的数据,,,但一旦有电话来了。我在EditText中写入的值已清除。我试着每5秒创建一次会话,并将其加载回简历,但仍然无效 也许有人能理解这种行为,并能进一步解释。 感谢您在创建后添加此内容 super.onCreate(savedInstanceState) 我不确定,但这可能是因为电话框架,因为它在android中具有最高优先级,当您接到呼叫时,默认情况下,调用了Teleph

到目前为止,我发现Android的这种行为非常奇怪。 我创建了一个android应用程序来输入来自EditText的数据,,,但一旦有电话来了。我在EditText中写入的值已清除。我试着每5秒创建一次会话,并将其加载回简历,但仍然无效

也许有人能理解这种行为,并能进一步解释。
感谢您在创建后添加此内容

super.onCreate(savedInstanceState) 

我不确定,但这可能是因为电话框架,因为它在android中具有最高优先级,当您接到呼叫时,默认情况下,调用了TelephonyManager,并且PhoneActivity IDK(用户界面的真实名称)出现在顶部,以便您可以接听或挂断呼叫。 但是正因为如此,你的活动进入了桌面,它的状态被清除了,编辑文本中的文本也被清除了。当我们旋转设备时,类似的情况也会发生

您可以通过保存和恢复活动状态来防止这种情况

示例:在活动内重写这些方法

   @Override
   public void onSaveInstanceState(Bundle savedInstanceState) {
      super.onSaveInstanceState(savedInstanceState);
      savedInstanceState.putString("old_text", yourEditText.getText());  
   }
然后

  @Override
  public void onRestoreInstanceState(Bundle savedInstanceState) {
       super.onRestoreInstanceState(savedInstanceState);
       String myString = savedInstanceState.getString("old_text");
       yourEditText.setText(myString);
    }

我希望这将帮助您

共享您的代码这一个也不起作用…等等,我将共享我的代码