Android:如何使用单个实例从非活动类启动活动

时间:2015-03-17 10:30:29

标签: android android-intent android-activity task flags

我有一个Java类(不是活动),我想从它开始一个新的活动。我正在初始化应用程序的上下文,然后我用它来开始一个新的活动,如下所示。虽然,只有添加以下代码intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);时代码才有效 这不是我想要的,因为我只想拥有每个活动的单个实例。 我怎样才能这样做,而不是创建一个新的活动来获得已创建的活动? 我的代码是:

public class Foo {
  ...
  protected Foo(Context context) {
    applicationContext = context;
  }

  private void onButtonClick(){
    Intent intent = new Intent(applicationContext, Bar.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //doesnt work without that line
    applicationContext.startActivity(intent);
  }
}

2 个答案:

答案 0 :(得分:4)

在这种情况下,您需要使用Activity上下文来启动新的Activity。你应该像下面那样修改你的课程

public class Foo {
  ...
  protected Foo(Activity activityContext) {
    this.activityContext= activityContext;
  }

  private void onButtonClick(){
    Intent intent = new Intent(activityContext, Bar.class);
    activityContext.startActivity(intent);
  }
}

但是在这里你的代码并没有清除你正在使用这个类的想法。因为您将此方法设为私有。

答案 1 :(得分:0)

Intent.FLAG_ACTIVITY_SINGLE_TOP

使用它,它可以帮助