相关疑难解决方法(0)

onActivityResult使用launchMode ="singleTask"?

当你试图startActivityForResult为此Activity而已launchMode="singleTask"; 它不会返回任何值onActivityResult,当你设置时launchMode="standard"; 一切正常,但系统要求说这Activity必须是singleTask,无论如何要解决这个问题?

android android-activity

23
推荐指数
3
解决办法
1万
查看次数

resultCode始终为0,请求始终为-1.Activity.onActivityResult();

我想将此添加到另一个关于resultCode == 0和的问题列表中requestCode == 0.

这是概要: 使用NoteActivity调用.NoteSettingsActivitystartActivityForResult()

我在网上搜索过,当我按下按钮的时候super.onBackPressed(),resultCode == 0.好后进一步研究,似乎它返回代码每次按下后退按钮,但拙劣地修补,经过super.onBackPressed()电话,只是简单finish()的应用onActivityResult()resultCode仍是等于0.它跟相同requestCode.

此外,我尝试操作清单文件,我做了很多更改只是为了让这项工作,但nothings对我有用.

这是片段.请注意,我已经恢复到我之前的提交,所以我已经失去了我最近的修改,但请注意我写的代码之前我注意到它resultCode总是等于0(ACTIVITY_CANCELED)

@Override
public void onNoteSettingsActivityCalled(Note note)
{
    Intent intent = new Intent(this, NoteSettingsActivity.class);
    intent.putExtra(NoteExtrasKey.EXTRA_NOTE_ID, note.getNoteID());

    startActivityForResult(intent, NoteRequest.REQUEST_UPDATE_SETTINGS);
}
Run Code Online (Sandbox Code Playgroud)

这是检测到活动的时间:

@Override
public void onBackPressed()
{   
    Log.i(NoteApplication.TAG, "NoteSettingsActivity.onBackPressed() has been called.");

    Intent intent = new Intent();
    intent.putExtra(NoteExtrasKey.EXTRA_NOTE_REMINDENABLED , mRemindEnabled);
    intent.putExtra(NoteExtrasKey.EXTRA_NOTE_REMINDEVERY   , mDaysSelected);
    intent.putExtra(NoteExtrasKey.EXTRA_NOTE_REMINDON      , String.valueOf(mRemindDateTime)); …
Run Code Online (Sandbox Code Playgroud)

android start-activity onactivityresult

10
推荐指数
2
解决办法
2万
查看次数

ActivityResultContracts.StartActivityForResult() 结果仅调用一次

当使用 androids 新的活动结果 API 时,回调仅对我触发一次。

class MyFragment : Fragment() {
   private val intentLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result: ActivityResult ->
      if (result.resultCode == Activity.RESULT_OK) {
         ...
      }
   }
}

private fun onClick(id: Long) {
  val intent = Intent(context, MyActivity::class.java)
  intent.putExtra(MyActivity.ID_EXTRA, id)
  intentLauncher.launch(intent)
}
Run Code Online (Sandbox Code Playgroud)

第一次单击片段会启动活动,活动完成后结果会正确传回。但是,当片段再次启动活动时,活动会设置结果并调用完成。但是,片段中的结果回调不会再次触发。

还注意到我不需要包括:

implementation 'androidx.activity:activity-ktx:1.4.0'
implementation 'androidx.fragment:fragment-ktx:1.4.1'
Run Code Online (Sandbox Code Playgroud)

新的活动结果 API 是否附带一些其他依赖项?想知道我正在引入的版本是否还发生了其他奇怪的事情?

编辑:

需要注意的是,只有在使用片段中的新活动结果 api 启动新活动时才会发生这种情况。从活动启动时我没有看到相同的行为。我需要对片段做一些不同的事情吗?

android android-activity

7
推荐指数
1
解决办法
3016
查看次数

Android启动活动结果无法正常运行半透明活动

ActivityActivityA 开始B startActivityForResult(),ActivityB是半透明的,然后是Activity的A方法

protected void onActivityResult(int requestCode, int resultCode, Intent data) {} 
Run Code Online (Sandbox Code Playgroud)

ActivityB 立即开始工作.

请建议.

android android-intent android-activity start-activity

0
推荐指数
1
解决办法
1885
查看次数