public class main extends AppCompatActivity {
private TextView mScore;
private Button mRunButton;
private TextView mScoreText;
private ProgressBar mSpinner;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mScore = (TextView) findViewById(R.id.score);
mRunButton = (Button) findViewById(R.id.runbutton);
mScoreText = (TextView) findViewById(R.id.scoreText);
mSpinner = (ProgressBar) findViewById(R.id.progress);
mSpinner.setVisibility(View.GONE);
View.OnClickListener listener = new View.OnClickListener(){
@Override
public void onClick(View v) {
mSpinner.setVisibility(View.VISIBLE);
long startTime = System.nanoTime();
long start = System.currentTimeMillis();
long count = 0l;
for(long x=0;x<Integer.MAX_VALUE ;x++){
count+=1;
}
long end = System.currentTimeMillis();
long endTime = System.nanoTime();
long duration = ((endTime - startTime) / 1000000);
mScore.setText(duration + "");
mSpinner.setVisibility(View.GONE);
}
};
mRunButton.setOnClickListener(listener);
}
正如Blackbelt和vilpe89提到的,您必须分离线程。您可以通过另一个扩展ASyncTask的类来实现这一点,该类将处理计算。这样做的问题是进度对话框需要在UI线程上运行。您可以在主类中有一个更改进度对话框的接口。
计算器类:
public final class Calculator extends AsyncTask<Void, Void, Void> {
Context context;
calcCallback mCallback;
public Calculator(Context c) {
this.context = c;
this.mCallback = (calcCallback) c;
}
//The main class needs to implement this interface
public interface calcCallback {
Void calcDone();
Void calcStarted();
//Other methods if necessary
}
@Override
protected Boolean doInBackground(Void... params) {
mCallback.calcStarted();
//Your calculations here
mCallback.calcDone();
return null;
}
}
主体活动
public class MainActivity extends Activity implements Calculator.calcCallback, {
private TextView mScore;
private Button mRunButton;
private TextView mScoreText;
private ProgressBar mSpinner;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mScore = (TextView) findViewById(R.id.score);
mRunButton = (Button) findViewById(R.id.runbutton);
mScoreText = (TextView) findViewById(R.id.scoreText);
mSpinner = (ProgressBar) findViewById(R.id.progress);
mSpinner.setVisibility(View.GONE);
View.OnClickListener listener = new View.OnClickListener(){
@Override
public void onClick(View v) {
Calculator calculator = new Calculator(MainActivity.this);
calculator.execute();
}
};
mRunButton.setOnClickListener(listener);
}
@Override
public Void calcStarted() {
runOnUiThread(new Runnable() {
@Override
public void run() {
mSpinner.setVisibility(View.VISIBLE);
}
});
}
return null;
}
@Override
public Void calcDone() {
runOnUiThread(new Runnable() {
@Override
public void run() {
mSpinner.setVisibility(View.GONE);
}
});
}
return null;
}
}
我希望看到输出正在打印(而不是在测试结束后)。 我在用Pycharm。在命令行中,我应该添加参数。
基本上,我正在Python中的一个订阅计数器应用程序的“草案”上工作。我使用YouTube数据API从YouTube获取数据,然后循环这段代码以更新订阅者计数。但是由于我的GUI代码在循环之后,它永远不会开始,因为循环是无限的,永远不会结束。我尝试将GUI部分放在代码之前,以获得子计数,但没有定义任何变量,因此返回错误。所以基本上,我的问题是如何重新组织它,使其工作,子计数在GUI中更新。我听说过
我正在使用Jacoco插件计算Spring启动应用程序的代码覆盖率。build.gradle的Jacoco配置如下: } 和 } } 有人能帮我吗?
问题内容: 我正在使用Jenkins管道配置Android应用程序构建过程。 在构建的开始和结束时,将消息发送到相关的Slack通道。 Jenkinsfile的相关部分如下所示: 除了上述信息之外,我还想包括构建运行到该消息的时间,该消息通知构建结束。 是否可以在不添加任何外部插件的情况下做到这一点?如果有一个环境变量可以保存此信息,那将是完美的,但我找不到这样的变量。 问题答案: 由于此 jen
因此,在NetBeans IDE中,一切正常。全力工作。但是在Built&Clean之后,我看不到图像,但所有的操作都完成了。 你能建议出了什么问题吗?因为这个而生气
我试图从扩展服务的类中打开一个活动。当应用程序不在前台/未被使用时,我正在执行此任务。我可以在日志中看到,我的服务类故意触发了启动活动。标志\活动\新任务标志。但活动并未开始。但是,当应用程序处于前台/正在使用时,服务触发相同的活动时,活动就会打开。 经过几次搜索,我发现我需要在应用程序设置的“其他权限”部分中手动授予“在后台运行android时显示弹出窗口”的权限。 “在其他应用程序上显示”权限