我写了一个线程应用程序,它运行一个无限循环。问题是,由于它被定义为一个线程,循环并没有将进程托管,但却消耗了大量的处理能力,从而降低了我的电池寿命。现在我知道这不是通常编写程序的方式,但考虑到可能会构建出恶意应用程序,安卓系统采取了什么预防措施来停止实现无限循环的进程?顺便问一下,我可以访问哪个特定类来获取应用程序的内存使用情况和处理器使用情况?
代码...
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();
}
}
编辑:好的,我们知道安卓对这个程序没有任何限制!那么我们如何编写一个程序来检测这些程序中的缺陷并关闭它们呢? 另外我想知道,点击按钮是否应该在之前的线程仍在运行时启动相同函数的新线程?它们不应该排队吗?