2011-12-22 40 views
0

我有一个代表我的活动和有一个对象,看起来像你能完成()一个对象的活动吗?

public class main extends Activity{ 
    //Does stuff 
    } 

    public class Object{ 
    //I want to call finish() here 
    } 

有没有办法做到这一点的一类?

+1

你的设计是有点奇怪。物体如何传递信号?到一个静态字段?为什么与一个活动无关的对象试图完成它? – 2011-12-22 02:26:40

回答

1

您可以让Object有一个接受Activity参数的构造函数,并在实例化Object类时传入活动实例。

实施例:

class MyObject { 
    private Activity act; 
    public Object(Activity act) { this.act = act;} 

    public doStuff() { 
     // do stuff 
     act.finish(); 
    } 
} 

//usage in some code inside your activity: 
MyObject obj = new MyObject(this); 
obj->doStuff(); 
+0

我不在活动中使用此对象,因此可能会很困难。我认为解决这个问题最简单的方法是使用while循环和if语句只在​​对象通过布尔标志发送信号时调用finish。我希望有更好的选择。 – eBehbahani 2011-12-22 01:56:56

+0

你的设计有点奇怪。物体如何传递信号?到一个静态字段?为什么与一个活动无关的对象试图完成它?如果对象位于活动内部,则可以在对象内调用'main.this.finish();'。 – 2011-12-22 02:11:23

+0

@Tomislav:第一和第二个问题:不需要信号。第三个问题:这是询问OP的问题。第四:如果Object是活动的内部类,那么可以这样做,这不是OP显示的内容。 – JRL 2011-12-22 02:23:28

相关问题