呼叫onDestory - >还在工作线程 测试设备OS 8.0
为什么不停止后台工作8.0?
我知道Android 8.0后台工作无效。
以下是示例代码:
true
答案 0 :(得分:0)
如果你使用简单的处理程序更新UI而不是线程,并在destroy上使用remove回调,会发生什么。这是一个使用handler的示例代码。试试这个。
private int mCount = 0;
private Runnable mRunnable;
private Handler mNewHandler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mNewHandler = new Handler();
mRunnable = new Runnable() {
@Override
public void run() {
try {
Log.e("test", "mCount : " + mCount + " Status : ");
mCount++;
Toast.makeText(MainActivity.this, mCount + "", Toast.LENGTH_SHORT).show();
} catch (Exception e) {
Log.e("Exception", "");
e.printStackTrace();
} finally {
mNewHandler.postDelayed(mRunnable, 1000);
}
}
};
mRunnable.run();
}
@Override
public void onDestroy() {
mNewHandler.removeCallbacks(mRunnable);
super.onDestroy();
}
或
如果你想使用线程尝试在destroy上添加这段代码。
thr.interrupt();