我们可以在一个类中创建一个静态方法来移动Intent多个活动吗?

时间:2013-11-17 16:47:00

标签: android android-intent android-activity

我在一个项目中有超过50个以上的活动,所以每次我都需要编写代码来将一个活动从一个活动转移到另一个活动。

在我看来,我可以创建一个可以从一个类的静态方法中移动多个活动的函数吗?

如下面的代码所示。

public static void moveActivity(Parameters)
{
//Code to move activity
}

或者我也可以遵循任何其他想法。

任何帮助都会非常感激。

提前致谢。

2 个答案:

答案 0 :(得分:0)

  

在我看来,我可以创建一个可以从一个类的静态方法中移动多个活动的函数吗?

我认为不是因为startActivity需要一个Context而不能在static背景下使用,我相信。

  

或者我也可以遵循任何其他想法。

这取决于你在做什么,但可能ViewPager和/或Fragments可以让你的生活更轻松。如果您有那么多Activities,那么您很可能无论如何都不想尝试从一个函数中管理它们,因为您必须考虑extrasflags等等...将有两行开始Activity(有时更多)只需编写代码。你想做的事情很可能会导致更多的麻烦,恕我直言。

如果您传递了大量相同的数据,那么您可以使用Bundles将它们传递给所有人。

答案 1 :(得分:0)

试试这个:

public class Utils {

    public static void launchActivity(
            Class<? extends Activity> nextActivityClass,
            Activity currentActivity, Map<String, Integer> extrasMap) {
        Intent launchIntent = new Intent(currentActivity, nextActivityClass);
        if (extrasMap != null && extrasMap.size() > 0) {
            Set<String> keys = extrasMap.keySet();
            for (String key : keys) {
                launchIntent.putExtra(key, extrasMap.get(key));
            }
        }
        launchIntent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
        currentActivity.startActivity(launchIntent);
    }

}

使用它:

在您的活动课程中,拨打此电话:

Utils.launchActivity(ActivityB.class, this, extrasMap);