【问题标题】:Finishing activity from static method从静态方法完成活动
【发布时间】:2014-06-15 17:01:55
【问题描述】:

我想在一个类中做一个静态方法来完成一个活动。我的意思是这样的: 活动 A ,活动 B ,活动 C,ActivityKiller 类。 类 ActivitiesKiller 有一个用于完成活动 A、B 或 C 的静态方法。

一个例子: 我的跑步班是B,我想完成活动A,所以我会打电话:

ActivitiesKiller.activityKiller(A);

这可能吗? 提前致谢

我正在做这样的事情,但它不起作用。

public class ActivitiesKiller {
 //.....

public static void activityKiller(Activity activity){ 
activity.finish();}


}

【问题讨论】:

  • 这听起来是个糟糕的主意,只有当你对活动进行静态引用时才有可能,你不应该这样做,因为它会导致内存泄漏。
  • 也许最好解释一下您想要实现的目标,我们可以提供帮助,将Activity 存储在静态中是一个坏主意,就像 Zhuinden 所说的那样。
  • @Wakim 只是我正在学习的好奇心。

标签: android static activity-finish


【解决方案1】:

虽然这听起来不是一个好主意,但您需要做的是在创建时对活动进行静态引用,并在销毁时将其设为空。

public class ActivityA extends Activity
{
    public static Activity self;

    @Override
    public void onCreate(Bundle saveInstanceState)
    {
       super.onCreate(saveInstanceState);
       self = this;
    }

    @Override
    public void onDestroy()
    {
       super.onDestroy();
       self = null;
    }
}

然后您需要执行以下操作

public class ActivitiesKiller 
{
    public static void activityKiller(Activity activity)
    { 
        if(activity != null)
        {
            activity.finish();
        }
    }
}

你会这样称呼

ActivitiesKiller.activityKiller(ActivityA.self);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 2013-11-14
    • 2013-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多