gpt4 book ai didi

android - 是否有可能检测到无限循环?

转载 作者:行者123 更新时间:2023-11-29 02:16:32 24 4
gpt4 key购买 nike

我编写了一个运行无限循环的线程应用程序。问题是因为它被定义为一个线程,循环没有持有和处理人质,但确实耗尽了我的大量处理能力,因此减少了我的电池生命周期。现在我知道这不是通常编写程序的方式,但考虑到可能会构建 rouge 应用程序这一事实,android 采取什么预防措施来停止实现无限循环的进程。同时,是否有一个特定的类我可以访问以访问应用程序的内存使用情况以及处理器使用情况?

代码...

package com.shouvik.HandlerThread;

import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;


public class HandlerThread extends Activity{

private ProgressDialog progressDialog;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

((Button) findViewById(R.id.Button01)).setOnClickListener(new OnClickListener()
{
public void onClick(View view)
{
DoSomething();
}
});
}

private Handler messageHandler = new Handler() {

public void handleMessage(Message msg)
{
super.handleMessage(msg);
Log.v("Handler", "Message Received. Dismissing Dialog");
}
};

protected void DoSomething()
{
new Thread()
{
public void run()
{
Log.v("Sleep", "Starting Count");
for(int i= 1; i!=0; i++)
{
Log.v("Count"," i = "+i);
}
messageHandler.sendEmptyMessage(0);
}
}.start();
}

}

已编辑:好的,我们知道 android 不会停止这个程序!那么我们如何编写程序来检测程序中的此类缺陷并将其关闭呢?另外我想知道,单击按钮是否应该在以前的线程仍在运行时启动具有相同功能的新线程?他们不应该排队吗?

最佳答案

阅读Multitasking the Android方式博客文章以获取有关 Android 如何处理线程的更多信息。最终,如果内存变低并且操作系统认为您的线程对用户来说并不重要,android 将终止该线程。如果将其实现为服务,则可以使用自动重启功能构建它,如果内存再次可用,操作系统将重新创建服务。

因为系统无法判断程序是否正常工作。也许该应用程序在用户同意的情况下计算了数小时的大量数字,或者只是变得疯狂。系统无法决定这一点。

用户可以防止这种情况的唯一方法是在手机变慢时检查正在运行的进程和电池消耗情况,如果某些用户在技术上足够合格,我希望可以删除构建不当和占用大量资源的程序他们对市场上的应用程序进行评分和评论,并警告其他不懂技术的人。

关于android - 是否有可能检测到无限循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3332656/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com