onResume在后台或手机睡眠后没有被调用

时间:2013-04-19 10:52:57

标签: android android-fragmentactivity onresume

我有恢复我的应用程序的问题 - 当它由于其他东西打开而进入后台时(例如我打电话打开导航的意图),或者因为手机睡觉;返回后(另一个活动关闭或电话被唤醒)我的应用程序仍然在后台,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 { . . . }

2 个答案:

答案 0 :(得分:6)

这是有史以来最愚蠢的“虫子” - noHistory设定为真。将其重置为假就是诀窍:

    <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>

答案 1 :(得分:1)

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