我有一个应用程序,它在我已经完成的库的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);
}
答案 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)..
}
因此,最好只为纯活动提供支持。