我有一个主要处理UI的Activity,我从其他类(不是服务)中完成大部分其余操作。我在该课程中做的一件事就是播放音频。我需要做的是在音频播放完毕后告诉我的Activity(OnCompletionListener)。
public class MyClass implements OnCompletionListener {
private MyActivity activity = new MyActivity();
public MyClass(){
}
...........
...........
...........
@Override
public void onCompletion(MediaPlayer mp) {
activity.onComplete();
}
}
这是错误的,因为“无法对MyActivity类型的非静态方法onComplete()进行静态引用。
我很确定我使用的是Java错误,但我无法弄清楚如何从类中调用onComplete。 (将onComplete更改为static是不可行的。)
编辑: 为MyActivity添加了一个构造函数:
public MyActivity(){
}
并创建了MyActivity的实例,活动(参见上面编辑过的代码),将其传递给方法,但是当我activity.onComplete();
时,它意外停止。 (我不知道为什么我的logcat不起作用,当我开始工作时我会回发)
答案 0 :(得分:0)
只需将MyActivity的一个实例传递给MyClass并在其上调用一个方法。这是有争议的方法,但最好我建议您提供您提供的信息。