android – onActivityResult在Activity启动时被调用,而不是在它完成时调用

android – onActivityResult在Activity启动时被调用,而不是在它完成时调用,第1张

概述我用一些标签写了一个FragmentActivity.当我用startActivityForResult调用一个额外的活动(我用它来设置用户首选项)时(如果它在FragmentActivity或ListFragment中没有差异),当我启动这个首选项活动时,会调用onActivityResult方法,但是当我完成它时,不会调用我期待它(如果它在FragmentActivity或ListFragme 我用一些标签写了一个FragmentActivity.当我用startActivityForResult调用一个额外的活动(我用它来设置用户首选项)时(如果它在FragmentActivity或ListFragment中没有差异),当我启动这个首选项活动时,会调用onActivityResult方法,但是当我完成它时,不会调用我期待它(如果它在FragmentActivity或ListFragment中没有差异).在完成首选项活动后,此方法根本不会被调用.

我的问题是,我想在完成首选项活动后刷新当前选项卡(并设置上次使用的选项卡ID),我希望能够在onActivityResult方法中执行此 *** 作.

这是创建首选项活动的类:

public abstract class ListFragmentBase<I> extends ListFragment implementsLoaderCallbacks<List<I>> {

这是将我转发到此类中的首选项活动的方法:

protected voID forwardtopreferences(int currentTab){                    Intent intent = new Intent(getActivity(),GlobalPreferencesActivity.class);        getActivity().startActivityForResult(intent,10);}

这是在调用上面的方法之后调用的方法,而不是在我完成被调用的活动之后调用的方法

@OverrIDepublic voID onActivityResult(int requestCode,int resultCode,Intent data) {    super.onActivityResult(requestCode,resultCode,data);}

这是偏好活动:

public class GlobalPreferencesActivity extends Activity {

在那个课程中你会看到我如何调用finish方法:

TextVIEw confirmSettings = (TextVIEw) vIEw.findVIEwByID(R.ID.confirm_settings);confirmSettings.setTextSize(PreferenceHelper.getSizeheader(getApplicationContext()));    confirmSettings.findVIEwByID(R.ID.confirm_settings).setonClickListener(new VIEw.OnClickListener() {        @OverrIDe        public voID onClick(VIEw vIEw) {                if(BaseFragmentActivity.lastActivity != null){                BaseFragmentActivity.lastActivity.onRefreshData();        }            Componentname callingActivity = getCallingActivity();            GlobalPreferencesActivity.this.finish();        }    });
解决方法 这是AndroID的一个BUG

onActivityResult() called prematurely

Why does result from startActivityForResult come before activity really starts?

我不知道您使用的是哪个版本以及是否已经解决/纠正

总结

以上是内存溢出为你收集整理的android – onActivityResult在Activity启动时被调用,而不是在它完成时调用全部内容,希望文章能够帮你解决android – onActivityResult在Activity启动时被调用,而不是在它完成时调用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1136562.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存