【问题标题】:RoboSpice - getting started not workingRoboSpice - 开始不工作
【发布时间】:2013-01-13 19:52:31
【问题描述】:

我设法实现了 robospice (GoogleHttpClientSpiceService) 的示例并且它可以工作 - 它成功地进入服务器,获取数据并将其存储在缓存中。如果 Activity 不是 onPause,甚至会显示 toast 并更新 GUI。

我的问题(也是我尝试 robospice 的唯一原因)是,如果 Activity 恢复,它不会再次收到通知。我是不是做错了什么?

    @Override //THIS IS NOT CALLED ON ACTIVITY RESUME (BECAUSE OF THIS I CANNOT DISMISS DIALOG)
    public void onRequestSuccess( final String result ) {
        Toast.makeText( PrijavaActivity.this, "success", Toast.LENGTH_SHORT ).show();
        Log.w(TAG, "sakses" + result);


        FragmentManager fm = getSupportFragmentManager();
        Fragment fragment = fm.findFragmentByTag("prijavaDialog");
        if(fragment!=null) {
            FragmentTransaction ft = fm.beginTransaction();
            ft.remove(fragment);
            ft.commit();
        }
    }

谢谢...

【问题讨论】:

    标签: android onresume onpause robospice


    【解决方案1】:

    您误解了 RoboSpice。你得到的行为是正确的。

    当一个活动停止(如您所说的非活动状态)时,它的所有请求侦听器都将被删除,它们将不会收到通知。

    只有当拥有它们的活动仍然存在时,才会通知侦听器。这就是 RoboSpice 的重点:防止侦听器或活动的内存泄漏。

    如果您想“继续侦听”请求的结果,即使启动它的 Activity 已处于非活动状态,那么您必须采用不同的策略。您应该使用更稳定的上下文,如应用程序或服务并启动您的请求表单,或者可能只是监听来自该上下文的请求结果(使用 addListenerIfPending,而不是执行)。

    【讨论】:

      猜你喜欢
      • 2014-12-27
      • 1970-01-01
      • 1970-01-01
      • 2010-11-23
      • 2018-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多