jus*_*227 5 multithreading android android-fragments
我有一个使用片段的MainActivity.
MainActivity的onCreate使用的完成onCreate
welcomeFragment = new MyWelcomeFragment();
fr.beginTransaction().replace(R.id.mainContent, welcomeFragment).commit()
Run Code Online (Sandbox Code Playgroud)
作为OnWesume上MyWelcomeFragment的一部分,一个线程开始从我的网络服务器获取更新.如果用户在线程完成之前选择了一个动作并转到MyNewsFragment,那么尚未完成在MyWelcomeFragment的线程堆栈中运行的线程会发生什么?
线程是用:( myThread和handler是实例变量)创建的
myThread = new Thread(new Runnable() {
@Override
public void run() {
sendDataToServer("");
handler = new Handler(Looper.getMainLooper());
handler.post(new Runnable() {
public void run() {
onTaskDone();
}
});
}
});
myThread.start();
Run Code Online (Sandbox Code Playgroud)
Dalvik 在运行时保留所有线程引用,因此您的线程将继续运行,除非它终止或完成(一些参考)。因此,根据您开始线程的位置,您可能会创建多个线程。没有干净的方法来取消线程,在这种情况下,您可能需要首先取消 sendDataToServer 内的 http 请求,并使用共享标志来停止线程。
从更大的角度来看,我建议
| 归档时间: |
|
| 查看次数: |
4632 次 |
| 最近记录: |