- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我编写了一个运行无限循环的线程应用程序。问题是因为它被定义为一个线程,循环没有持有和处理人质,但确实耗尽了我的大量处理能力,因此减少了我的电池生命周期。现在我知道这不是通常编写程序的方式,但考虑到可能会构建 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/
降本手段一招鲜,增效方法吃遍天; 01 互联网行业里; 降本策略千奇百怪,手段却出奇一致;增效方法五花八门,手段更是花里胡哨; 对于企业来说;
有什么方法可以使用 angularjs 中的部分进行代码分组吗? 原因 --- 我的 Controller 包含太多代码。该 Controller 包含了多个方法和大量功能的代码,降低了代码的可读性。
不幸的是,我的数据库的数据模型必须改变,所以我正在寻找最轻松的方式来迁移我的数据。 此时情况如何: create table cargo{ id serial primary key, per
在 QTextEdit 对象中,假设我想知道字符在鼠标光标下的位置。 我会写... void MyQTextEditObject::mousePressEvent(QMouseEvent* mouse
是否可以在 C++ 中返回一个 return 语句或做一些具有类似功能的事情? 例如,如果代码中有几个函数将指针作为输入,并且每个函数都检查指针是否为 nullptr,这将很方便。如果它是一个 nul
我的 PC 上有一个控制台应用程序,它是 signalR 服务器。 我有一个 html 页面,它是互联网上的 signalR 客户端。但我尝试连接服务器,但我有一个错误的请求 400 错误。如果服务器
我想将应用程序作为后台进程运行。当点击应用程序图标时,它不会显示任何 View ,只会启动后台进程。 最佳答案 对于 iOS 这是不可能的,但是对于 android,react native 有 he
我知道有(昂贵的)框架可以让你在 VS C# 中编写 android 应用程序并将其编译为 android apk。 我也知道,可以在 VS 中编写 Java 应用程序(link)。 是否有可能,甚至
我在做: can :manage, :all if user.role == 'admin' can :approve, Anuncio do |anuncio| anuncio.try(:apr
我是一名优秀的程序员,十分优秀!