gpt4 book ai didi

java - Android - 线程未执行

转载 作者:行者123 更新时间:2023-12-01 14:44:52 26 4
gpt4 key购买 nike

所以,是的,我的线程没有执行,也没有执行其中的代码。我只是想从我的 SD 卡运行一个 shell 脚本,并显示一个“正在加载”圆圈或“进度”圆圈或任何你想调用它的东西。当我单击按钮运行线程时,我得到进度/加载条/圆圈,但它只是坐在那里,什么也不做。我看过一些例子,但仍然无法弄清楚我做错了什么。这是我的代码:

package com.cydeon.plasmamodz;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.concurrent.TimeoutException;

import com.stericson.RootTools.*;
import com.stericson.RootTools.exceptions.RootDeniedException;
import com.stericson.RootTools.execution.CommandCapture;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.res.AssetManager;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class Install extends Activity{

private static ProgressDialog progressDialog;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.install);
Button bInstall = (Button) findViewById(R.id.bInstallTheme);
bInstall.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View arg0) {
showDialog();
}
});
}


public void showDialog(){
progressDialog = ProgressDialog.show(Install.this, "", "Installing Theme", true);
Thread thread = new Thread();
thread.start();
}

public void run(){
try{
Thread.sleep(1000);
CommandCapture command = new CommandCapture(0, "su", "sh /sdcard/plasma/scripts/install.sh");
try {
RootTools.getShell(true).add(command).waitForFinish();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (TimeoutException e) {
e.printStackTrace();
} catch (RootDeniedException e) {
e.printStackTrace();
}
}catch (InterruptedException e){
e.printStackTrace();
}
handler.sendEmptyMessage(0);
}

private static Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
progressDialog.dismiss();
}
};

}

所以,我做错了什么吗?为什么它不运行我的代码?谢谢!

最佳答案

线程不知道要运行什么。改变

public class Install extends Activity{

public class Install extends Activity implements Runnable {

并改变

Thread thread = new Thread();

Thread thread = new Thread(this);

关于java - Android - 线程未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15536700/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com