我正在做一些Android编程,我想创建一个接受意图的可运行对象。我了解创建可运行对象的一般方法是:
可运行的R1 =新的可运行(){
码
};
我想要的是让我的跑步者接受意图作为参数或输入。然后,可运行对象将意图用于其他用途。我想我看起来像这样:
可运行R1 =新可运行(Intent i1){
码
};
我已经尝试过这种方法及其变体,无法对其进行编译。我该怎么做呢?
最佳答案
要接受参数,必须创建一个符合Runnable的新类,以便可以将参数传递给构造函数(并在其中有用)。捕获状态(对匿名Runnable对象有用)的另一种方法是访问词法范围内的final
变量。
通过一个新的类和一个接受参数并存储值以供以后使用的构造函数:
class RoadRunner implements Runnable {
String acmeWidget;
public RoadRunner (string acmeWidget) {
this.acmeWidget = acmeWidget;
}
public void run () {
evadeCleverPlan(acmeWidget);
}
}
void doIt () {
Runnable r = new RoadRunner("Fast Rocket");
// do something with runnable
}
(如果
RoadRunner
是inner class-这是一个非静态嵌套类-它也可以访问该封闭类型的实例成员。)带有匿名Runnable和“穷人闭门”:
void doItAnon () {
final String acmeWidget = "TNT";
Runnable r = new Runnable () {
public void run () {
evadeCleverPlan(acmeWidget);
}
};
// do something with runnable
}
(此匿名Runnable也可以访问包含类型的实例成员,例如anonymous classes是内部类。)
关于java - 创建使用参数的可运行对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16408991/