当前位置:首页 » 安卓系统 » android线程终止

android线程终止

发布时间: 2022-09-22 15:43:33

1. Android如何停止线程的方式

一种是调用它里面的stop()方法,另一种就是你自己设置一个停止线程的标记
(推荐这种)
如果使用Thread.stop方法停止线程,不能保证这个线程是否完整的运行完成一次
run方法;但是如果使用停止的标记位,那么可以保正在真正停止之前完整的运行完
成一次run方法;第二中方式,但是对于麻烦的动作,解决方式是这一个全局变量,每个复杂的动作都进行判断一下

2. android如何终止递归的子线程

在您子线程的run函数中:

java">publicvoidrun(){
while(!isInterrupted()){//判断线程是否被要求中断过,中断,就线程循环结束.
//想让线程做什么..

}
}

在主线程调用finish()前:

if(mMyThread!=null&&mMyThread.isAlive()){//线程活着?中断它..
mMyThread..interrupt();
}

注:mMyThread是线程对象的引用...

3. android需要考虑结束线程吗

  • Android终止线程的方法前提

    线程对象属于一次性消耗品,一般线程执行完run方法之后,线程就正常结束了,线程结束之后就报废了,不能再次start,只能新建一个线程对象。但有时run方法是永远不会结束的。

  • 三种方法可以结束线程:

  1. 使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。

  2. 使用interrupt()方法中断线程。

  3. 使用stop方法强行终止线程(不推荐使用,可能发生不可预料的结果)。

  • 使用退出标志终止线程

    使用一个变量来控制循环,例如最直接的方法就是设一个boolean类型的标志,并通过设置这个标志为true或false来控制while循环是否退出。代码如下:

  • 使用stop方法终止线程

    程序中可以直接使用thread.stop()来强行终止线程,但是stop方法是很危险的,就象突然关闭计算机电源,而不是按正常程序关机一样,可能会产生不可预料的结果,不安全主要是:thread.stop()调用之后,创建子线程的线程就会抛出ThreadDeatherror的错误,并且会释放子线程所持有的所有锁。

其他注意事项:

前两种方法都可以实现线程的正常退出,也就是要谈的优雅结束线程,第3种方法相当于电脑断电关机一样,是不安全的方法。

4. 如何终止 android线程池中的任务

  • 终止android线程池中的任务的方法

    1.实现Callable接口

    2.调用pool.submit()方法,返回futrue对象

    3.用future对象来获取线程的状态。



  • voidtest(){
    ExecutorServicepool=Executors.newFixedThreadPool(2);


    Callable<String>s=newCallable<String>(){

    @Override
    publicStringcall()throwsException{
    System.out.println("test");
    return"true";
    }
    };

    Future<String>f=pool.submit(s);

    System.out.println(f.isCancelled());
    System.out.println(f.isDone());
    f.cancel(true);


    }


5. android 强行关闭线程

这个好办,这里有两个线程吧,线程A
线程mSender。
设:让线程A,监视线程mSender
第一步:
在A中定义一个变量:ExecutorService
transThread
=
Executors.newSingleThreadExecutor();
解释:transThread
官方名称是“单一线程池变量”,他是做什么的呢,它就像我们给A的一块赛车场,用来玩遥控赛车。
第二步:
在A中再定义一个变量:
Future
transPending;
解释:transPending就像我给A一个用来控制遥控赛车的遥控器一样
第三步:
在A中定义个线程mSender对象:
private
final
Runnable
mSender
=
new
Runnable()
{
public
void
run()
{
}};
解释:这是你写的对象,他就相当于我给A的一个遥控赛车。
第四步:
在A中添加如下语句:transPending
=
transThread.submit(mSender);
解释:这一步就相当于把赛车(mSender)放入场地(第一步中我们定义的transThread),并且用遥控器“transPending”来控制他。
(注:这里你是否会有疑惑,我没有写"mSender.start()"之类的语句怎么让我的赛车跑起来啊(运行run()方法),放心,有了“transPending
=
transThread.submit(mSender);”这一步,赛车是自动跑起来的,也就是mSender会自动调用run的。)
第五步:
现在你可以用遥控器“transPending”干很多事情了
transPending.cancel(true);无论线程现在是否运行中,立刻终止。
transPending.cancel(false);当前线程若没有运行(比如挂起状态)就终止它。
transPending所做的不止这些。

6. android中的线程该怎么停掉

线程不要直接停止,那样会产生线程不安全的。
你要配合Handler来用。
当下载完之后调用handler.sendEmptyMessage()方法。

或者你换成AsyncTask来实现线程下载。

7. Android如何停止线程的方式

一种是调用它里面的stop()方法,另一种就是你自己设置一个停止线程的标记 (推荐这种)

如果使用Thread.stop方法停止线程,不能保证这个线程是否完整的运行完成一次
run方法;但是如果使用停止的标记位,那么可以保正在真正停止之前完整的运行完
成一次run方法;第二中方式,但是对于麻烦的动作,解决方式是这一个全局变量,每个复杂的动作都进行判断一下

8. android怎么停止子线程

一种是调用它里面的stop()方法,另一种就是你自己设置一个停止线程的标记 (推荐这种)

如果使用Thread.stop方法停止线程,不能保证这个线程是否完整的运行完成一次
run方法;但是如果使用停止的标记位,那么可以保正在真正停止之前完整的运行完
成一次run方法;第二中方式,但是对于麻烦的动作,解决方式是这一个全局变量,每个复杂的动作都进行判断一下

9. Android怎么结束一个线程

在Java语言中,安全结束线程的方法就是“让线程的自身流程执行完”。
出现“僵尸线程”的原因:1.线程在死循环中执行。2.线程阻塞。

很明显,你的ReadHandlerThread线程发生了线程阻塞。

dis.readFully(b),你在这里调用了一个阻塞方法,由于socket的另一端一直没有发送数据,ReadHandlerThread线程一直阻塞在了这里,等待接收完136字节的数据。136字节没有接收完,readFully方法将一直处于阻塞状态。

解决方法,设置socket的等待超时值,而不是无限等待。

10. android如何终止一个正在运行的子线程

线程像这样:
Thread{
boolean flag = fase;
run(){
while(!flag){
}
}
}
Thread t = new Thread();
t.start();
-----------------------------------------------------
要终止循环,只需要这样
t.flag=true;
================================================
还有一种方式 线程像这样:
Thread{
run(){
while(true){
Thread.sleep(xxxx);
}
}
}
Thread t = new Thread();
t.start();
--------------------------------------------
要终止循环,只需要这样
t.interrupte();
但是这里要注意调用的时机,要在子线程执行了run方法里面的sleep(xxxx)后xxxx时间之内调用。也就是子线程会睡一会,醒一会,睡一会,醒一会,要在子线程睡着的时候调用。

热点内容
单片机编译器和驱动 发布:2025-01-13 13:31:33 浏览:439
tis服务器怎么进pe 发布:2025-01-13 13:31:02 浏览:276
android线程与线程通信 发布:2025-01-13 13:30:27 浏览:38
FTP服务器本地策略 发布:2025-01-13 13:20:47 浏览:485
地下城堡2挂机脚本 发布:2025-01-13 13:20:44 浏览:205
web云服务器配置 发布:2025-01-13 13:19:54 浏览:459
小康密码是多少 发布:2025-01-13 13:19:13 浏览:41
javafile类 发布:2025-01-13 13:19:08 浏览:83
c语言求逆 发布:2025-01-13 13:14:43 浏览:929
中控大屏怎么看配置 发布:2025-01-13 13:11:33 浏览:912