1

我有一个应用程序,它在我完成的库的 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);    
}
4

2 回答 2

3

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

于 2012-03-20T10:28:23.513 回答
0

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

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

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

}

所以最好只为纯活动提供支持。

于 2012-03-20T10:33:42.717 回答