小编Cak*_*ako的帖子

Android 应用程序在 System.exit(0) 上重启;

我正在创建一个有一些线程的应用程序,我想关闭它。我试过:

System.exit(0);
Run Code Online (Sandbox Code Playgroud)

但应用程序会自行重启。

请帮帮我,谢谢。

编辑:

OnDestroy 代码:

@Override
public void onDestroy(){
    android.os.Process.killProcess(android.os.Process.myPid());
}
Run Code Online (Sandbox Code Playgroud)

OnOptionsItemClicked:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.item1:
        startActivity(new Intent(this, ConnActivity.class));
        finish();
        break;
    case R.id.item2:
        android.os.Process.killProcess(android.os.Process.myPid());
        System.exit(0);
        break;
    case R.id.item3:
        AlertDialog.Builder alert = new AlertDialog.Builder(this);

        alert.setTitle("Mensaje al servidor");
        alert.setMessage("Enviar mensaje al servidor");

        // Set an EditText view to get user input 
        final EditText input = new EditText(this);
        alert.setView(input);

        alert.setPositiveButton("Enviar", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
          String value = input.getText().toString(); …
Run Code Online (Sandbox Code Playgroud)

java android

5
推荐指数
1
解决办法
4860
查看次数

while循环未执行

我正在开发一个java项目,其中外部微控制器设备通过串行端口连接到计算机.我在java应用程序中有一个等待对话框,等待命令在微控制器设备上执行.如果微控制器在10秒内没有响应,应用程序将关闭.

问题是某些命令太快,微控制器在等待对话框变为活动状态之前响应.这会导致应用程序在十秒钟后关闭.

这是我想要等待对话框可见的第一个想法:

new Thread() {
    public void run() {
         while (!Main.mainFrame.waitDialog.isVisible()) {}
         Main.usbManager.start();
    }
}.start();
Run Code Online (Sandbox Code Playgroud)

但是应用程序停留在while循环中并且等待对话框是可见的,但是如果我向while循环添加一些随机句子 System.out.flush();,则它可以工作,当对话框可见时,程序退出while循环.

我怎么能等待对话框可见?

谢谢

java multithreading

4
推荐指数
1
解决办法
88
查看次数

标签 统计

java ×2

android ×1

multithreading ×1