【问题标题】:Can you finish() an activity from an object?你能完成()一个对象的活动吗?
【发布时间】:2011-12-22 01:48:12
【问题描述】:

我有一个代表我的活动的类和一个看起来像的对象

  public class main extends Activity{
  //Does stuff
  }

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

有什么办法吗?

【问题讨论】:

  • 你的设计有点奇怪。物体将如何传递信号?到静态字段?为什么一个与 Activity 无关的对象试图完成它?

标签: android activity-finish


【解决方案1】:

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

例子:

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 语句仅在对象通过布尔标志发送信号时调用完成。我希望有更好的选择。
  • 你的设计有点奇怪。物体将如何传递信号?到静态字段?为什么一个与 Activity 无关的对象试图完成它?如果对象位于 Activity 内,您只需在对象内调用 main.this.finish();
  • @Tomislav:第一个和第二个问题:不需要发信号。第三个问题:这是要问OP的问题。第四:如果 Object 是活动的内部类,您可以这样做,这不是 OP 所显示的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-30
  • 1970-01-01
  • 1970-01-01
  • 2013-03-25
  • 1970-01-01
  • 2019-08-12
  • 1970-01-01
相关资源
最近更新 更多