【问题标题】:onResume not called after app in background or phone sleep在后台应用程序或手机睡眠后未调用 onResume
【发布时间】:2013-04-19 10:52:57
【问题描述】:

我在恢复我的应用时遇到问题 - 由于其他打开的东西(例如我调用意图打开导航)或手机休眠而进入后台时;返回后(另一个活动关闭或手机唤醒)我的应用程序仍然在后台,onResume 永远不会被调用(日志中没有错误,什么都没有)。为什么会发生这种情况,我该如何摆脱这种行为,我应该从哪里开始寻找?

public class MainActivity extends ...v4.app.FragmentActivity implements FewMyListeners {
    . . .
    private Locator locator;

@Override
public void onResume() {
    super.onResume();

    try {
        locator = new Locator(this);
    } catch (NoLocationProviderFoundException e) {
        showLocationSettingsDialog();
    }

    refreshLocation();
}

@Override
protected void onPause() {
    if(locator != null) {
        locator.removeUpdates(false);
        locator = null;
    }

    dismissProgressDialog();

    super.onPause();
}
}

public class Locator implements LocationSource, LocationListener { . . . }

【问题讨论】:

  • 你怎么知道onResume()没有被调用?我想您已经尝试过从该方法(或由它调用的任何其他方法)中打印一条日志消息。
  • 是的,我是这样想的。当我运行我的应用程序时,会正确调用 onResume() (并打印日志)。但在睡眠或移至后台后,什么都没有发生。
  • onPause() 执行成功了吗?
  • 是的,我敢肯定!
  • 我看到您正在为您的 Locator 类中的 my-location 层实现自定义 LocationSource。虽然可能不是问题的原因,但我建议让GoogleMap 对象管理其位置提供程序的状态,如docs 中所述。

标签: android android-fragmentactivity onresume


【解决方案1】:

这是有史以来最愚蠢的“错误”——noHistory 设置为 true。将其重置为 false 就行了:

    <activity
        android:name=".MainActivity"
        android:noHistory="false">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

【讨论】:

  • 我认为这不是您的应用程序中的错误。这是 android 框架中的错误 - 为什么 noHistory 标志应该以任何方式影响 onResume() 是否被调用?它应该总是被调用。
  • 片段呢?我应该为拥有该片段的活动添加该行吗?
【解决方案2】:

确保您已在覆盖的onResume() 方法中调用了super.onResume() 方法

【讨论】:

  • 我确定,这是我的 onResume() 方法的第一行。
  • 发布您的 onResume 代码 .. 您是否在活动中完成了任何非同寻常/异常的任务?更好地粘贴您的代码
  • 好吧,我使用标准(默认一个,我没有定义它),所以我尝试了 android:launchMode="singleInstance" 因为我的应用程序只是一个切换片段的活动,但问题仍然存在:/。还有其他想法吗?
猜你喜欢
  • 1970-01-01
  • 2015-03-19
  • 1970-01-01
  • 2011-12-23
  • 2020-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-16
相关资源
最近更新 更多