Java 使用Android的线程
我的应用程序中有三个类。 第一个扩展活动Java 使用Android的线程,java,android,android-intent,Java,Android,Android Intent,我的应用程序中有三个类。 第一个扩展活动 public class TestProjActivity extends Activity { /** Called when the activity is first created. */ String my =""; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentV
public class TestProjActivity extends Activity {
/** Called when the activity is first created. */
String my ="";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
new Thread(new Runnable() {
public void run() {
Translation th = new Translation(this);
my = th.doSomeJob();
}
}).start();
Log.d("ONCREATE", my);
}
}
第二个是DBHelper
public class DBHelper {
private final Context myContext;
public DBHelper(Context context) {
this.myContext = context;
}
}
第三个扩展了DBhelper
public class Translation extends DBHelper {
public Translation(Runnable runnable) {
super((Context) runnable);
}
public String doSomeJob(){
return "Yes I DID!";
}
}
将来我会改变这门课做真正的工作但是现在,
当我运行此命令时,会出现以下错误:
- 05-11 13:15:53.003:E/AndroidRuntime(512):未捕获处理程序:由于未捕获异常而退出线程8
- 05-11 13:15:53.028:E/AndroidRuntime(512):java.lang.ClassCastException:iKA.PROJ.TestProjActivity$1
- 05-11 13:15:53.028:E/AndroidRuntime(512):在另一个.pack.Translation.(Translation.java:10)
- 05-11 13:15:53.028:E/AndroidRuntime(512):在iKA.PROJ.TestProjActivity$1.run(TestProjActivity.java:20)
- 05-11 13:15:53.028:E/AndroidRuntime(512):在java.lang.Thread.run(Thread.java:1096)
- 05-11 13:15:53.053:I/dalvikvm(512):线程ID=7:对信号3作出反应
- 05-11 13:15:53.053:E/dalvikvm(512):无法打开堆栈跟踪文件“/data/anr/traces.txt”:权限被拒绝
- 05-11 13:20:53.135:I/进程(512):发送信号。PID:512信号:9
我错了什么 您正试图将您的
Runnable
强制转换到上下文中。这是不可能的
我想你要做的是
Translation th = new Translation(TestProjActivity.this);
及
您正试图将可运行的
强制转换为上下文
。这是不可能的
我想你要做的是
Translation th = new Translation(TestProjActivity.this);
及
翻译构造函数执行活动(上下文)。但翻译构造函数签名需要可运行。我认为这是您的问题(错误的类从上下文/活动转换为Runnable)。翻译构造函数执行活动(上下文)。但翻译构造函数签名需要可运行。我认为这是您的问题(错误的类从上下文/活动转换为Runnable)。以及如何调用超级构造函数DBHelper(),它将是未定义的;如何调用超级构造函数DBHelper(),它将是未定义的