Android静态内部活动类的用途是什么以及我们可以使用的确切位置?

时间:2015-10-29 14:33:42

标签: android

我创建了一个名为MainActivity的活动,其范围从ThirdActivity开始。 接下来,我有一个名为AnotherActivity的内部静态活动,它从SecondActivity延伸。以下是我的代码: 1)MainActivity:这是应用程序加载时首先调用的第一个活动。

public class MainActivity extends ThirdActivity {

    public static class AnotherActivity extends SecondActivity{

    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        System.out.println("Main Activity");
    }
}

2)ThirdActivty Code如下:

public abstract class ThirdActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_third);

        System.out.println("Third Activity");
    }
}

3)从SecondActivity扩展的内部静态活动包括:

public abstract class SecondActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

        System.out.println("Second Activity");
    }
}

现在上面的android程序的输出是:

Third Activity
MainActivity

为了访问内部活动,我们需要在清单中声明:

<activity android:name="MainActivity$AnotherActivity" ></activity>

所以,我的问题是这样的:

1)如何访问静态内部Activity类。 2)何时使用此方案。? 3)内部活动是否会运行生命周期过程以及已经运行MainActivity会发生什么?

1 个答案:

答案 0 :(得分:1)

我喜欢在喝咖啡之前回答奇怪的问题。

  

1)如何访问静态内部活动类

你是什么意思&#34;访问&#34;?这是一个静态内部类的事实几乎无关紧要。它将像普通的Activity一样运行。当它运行时,将调用其onCreate方法。发生这种情况时,会在规范变量AnotherActivity中引用this的正在运行的实例。

  

2)何时使用此方案。

我无法想到一个原因。事实上,我可以想到一百万不使用它的理由。如初。

  

3)内部活动是否会运行生命周期过程以及什么   恰好已经在运行MainActivity?

是。 &#34;内部&#34;活动将在正常的Activity生命周期中运行。 MainActivity没有任何反应,因为AnotherActivity正在运行时它没有运行。启动AnotherActivity后,MainActivity停止(onPause,可能onStop等)。