onPause()Android

时间:2012-03-20 10:24:18

标签: android onpause

我有一个应用程序,它在我已经完成的库的onPostExecute中每隔X秒连接一个URL。当我关闭应用程序或使用后退按钮返回时,它必须在主活动类上覆盖onPause()方法时停止。 我想用自己的库来控制它,以便为新开发人员创建类,但如果我在库onPause()方法上覆盖它,它会继续建立连接。 有没有办法在我的图书馆做这些?

这是我在主类上的代码:

@Override
public void onPause() {
    super.onPause();
    myLib.stopResource();
    myLib.flagRefresh = false;
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
     if (keyCode == KeyEvent.KEYCODE_BACK) {
        myLib.stopResource();
        myLib.flagRefresh = false;
        super.onBackPressed();
        return true;
     }
     return super.onKeyDown(keyCode, event);    
}

2 个答案:

答案 0 :(得分:3)

您应该使用onStop()而不是onPause(),只要活动未在屏幕上显示但仍在运行,即屏幕变黑时,就会调用onKeyDown()。不要覆盖onBackPressed(),最好使用onPause()方法,但是如果将当前代码onStop()放在{{1}}内,则不需要覆盖它。

答案 1 :(得分:0)

我看到的唯一方法是从支持您的库的Activity派生一个新类。 但这种方法会遇到排列爆炸。 任何专业标准活动也需要MyLib变体。 (ListActivity,FragmentActivity等)

class MyLibActivity extends Activity {
    @Override
    public void onPause() ..

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event)..

}

因此,最好只为纯活动提供支持。