【发布时间】:2017-12-15 13:47:25
【问题描述】:
我创建了一个计算输入数字的阶乘的安卓应用。 我的代码是:
void factorial(int x){
if(x>=0){
BigInteger res= new BigInteger("1");
for(int i=x; i>1; i--){
res = res.multiply(BigInteger.valueOf(i));
}
TextView text = (TextView)findViewById(R.id.resultTextView);
text.setText(res.toString());
}
}
它有效,但是当我尝试计算阶乘 80.000 及更多时,应用卡住了片刻然后退出,重新加载了 android 的图形“桌面”界面。 电脑运行的同一段代码不会产生任何问题。 如何修复我的应用程序以计算这些值而不是自行终止?
提前致谢。
【问题讨论】:
-
首先我建议您找出应用程序被杀死/崩溃的原因。我不是 Android 开发人员,但我怀疑你在错误的地方计算它。由于计算 80000 的阶乘需要一段时间,我会在一些不会阻挡视图的后台进程中进行。
-
@Admit 你如何建议创建这个后台进程?
-
一个线程多于一个进程
-
@Nick,我怀疑 Admit 建议您使用您的谷歌技能来了解 Android AsyncTasks 或线程。
-
@323go 说实话我是菜鸟,我不明白你告诉我的目的是什么。 Android AsyncTasks 呢?我应该解决什么问题?
标签: java android factorial calculation