我有一个自定义 View ,它运行一个线程操作,它定期调用互联网。我想知道是否有办法让我不必从父 Activity(onPause)中杀死该线程,以便在 Activity 被后台处理(和/或被杀死)后线程不会在后台运行。
这里的目的是让自定义 View 自给自足,不需要来自 Activity 的额外处理。这样做的方法是让它监听它的父级何时被后台处理,然后让线程中的无限 sleep 循环到期。我没有看到这样做的方法,但希望我忽略了一些东西。
最佳答案
Yes you can using below code,
@Override
protected void onVisibilityChanged(@NonNull View changedView, int visibility) {
super.onVisibilityChanged(changedView, visibility);
if (visibility == View.VISIBLE) //onResume called
else // onPause() called
}
@Override
public void onWindowFocusChanged(boolean hasWindowFocus) {
super.onWindowFocusChanged(hasWindowFocus);
if (hasWindowFocus) //onresume() called
else // onPause() called
}
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
// onDestroy() called
}
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
// onCreate() called
}
关于android - 自定义 View 可以知道 onPause 已被调用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22368720/