Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 你能从一个对象完成一个活动吗?_Android_Activity Finish - Fatal编程技术网

Android 你能从一个对象完成一个活动吗?

Android 你能从一个对象完成一个活动吗?,android,activity-finish,Android,Activity Finish,我有一个表示我的活动的类和一个 public class main extends Activity{ //Does stuff } public class Object{ //I want to call finish() here } 有什么方法可以做到这一点吗?您可以让对象有一个接受活动参数的构造函数,并在实例化对象类时传入活动实例 例如: class MyObject { private Activity act; public Object

我有一个表示我的活动的类和一个

  public class main extends Activity{
  //Does stuff
  }

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

有什么方法可以做到这一点吗?

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

例如:

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();

我在活动中不使用此对象,因此这可能会很困难。我认为解决这个问题最简单的方法是使用while循环和if语句,仅当对象通过布尔标志发送信号时才调用finish。我希望有更好的选择。你的设计有点奇怪。物体如何传递信号?到静态场?为什么与活动无关的对象试图完成它?如果对象驻留在活动中,则只需调用
main.this.finish()从对象内。@Tomislav:第一和第二个问题:无需发出信号。第三个问题:这是一个要问OP的问题。第四个问题:如果对象是活动的内部类,那么你可以这样做,而OP并没有说明这一点。你的设计有点奇怪。物体如何传递信号?到静态场?为什么与活动无关的对象试图完成它?