具体情况如下:主类文件:
public class LunarLander extends Activity {
private LunarView mLunarView;
private LunarThread mLunarThread; protected void onCreate(Bundle savedInstanceState) { }//想调用的方法
public void playSound(){
//something
}
}Thread文件:class LunarView extends SurfaceView implements SurfaceHolder.Callback { class LunarThread extends Thread { public void setState(){
//想在这里调用playSound()方法
}
}}请问怎么才能实现?网上查了,好像要用sendMessage,但是怎么调用一个方法呢?
可不可以直接访问到? 谢谢先线程类holdermessageasynctask
public class LunarLander extends Activity {
private LunarView mLunarView;
private LunarThread mLunarThread; protected void onCreate(Bundle savedInstanceState) { }//想调用的方法
public void playSound(){
//something
}
}Thread文件:class LunarView extends SurfaceView implements SurfaceHolder.Callback { class LunarThread extends Thread { public void setState(){
//想在这里调用playSound()方法
}
}}请问怎么才能实现?网上查了,好像要用sendMessage,但是怎么调用一个方法呢?
可不可以直接访问到? 谢谢先线程类holdermessageasynctask
解决方案 »
- android求教,急
- 有点小急!!!如何将android通过吸墨API访问书籍
- 问个弱智的问题,windows系统卸载软件,会在系统中留下一些垃圾文件;android系统卸载软件的话,会留下垃圾文件吗
- android 从SD卡导入vCard文件到通讯录 号码带"-" 如何把横线去除
- android软键盘问题
- 如何使自己的应用程序获得root权限..
- webview怎样禁止双击缩放
- android修改屏幕像素
- Failed to find style 'switch Style' in current theme
- GridView 刷新 SimpleAdapter中的数据,异常!
- 使用android自带的ant的build.xml文件打包混淆问题.
- 语音声控
能说详细点么?LunarThread构造函数里加了mHandler = handler;
但是不知道怎么能和Activity 里面的方法联系上
Handler handler = new Handler(){ @Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
if(msg.arg1){
//想调用的方法
public void playSound(){
//something
}
}
}
};
public class MyThread implements Runnable{ @Override
public void run() {
// TODO Auto-generated method stub
try {
//自己设置你的状态根据需要自己定义
setState = true;
Message message = new Message();
message.arg1 = setState;
handler.sendMessage(message);// 发送消息
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
方法2.
public void setState()
{
//想在这里调用playSound()方法
LunarLander.this.playSound();
}
对,我的环境下用这个方法最简单, 就一句
((LunarLander)getContext()).stopSound();to detective2005:
你的方法应该是适用面最广的,学习了to u010495676:因为没在onCreate()中,所以好像不能用 LunarLander.this.playSound();