我创建了一个名为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会发生什么?
答案 0 :(得分:1)
我喜欢在喝咖啡之前回答奇怪的问题。
1)如何访问静态内部活动类
你是什么意思&#34;访问&#34;?这是一个静态内部类的事实几乎无关紧要。它将像普通的Activity一样运行。当它运行时,将调用其onCreate
方法。发生这种情况时,会在规范变量AnotherActivity
中引用this
的正在运行的实例。
2)何时使用此方案。
我无法想到一个原因。事实上,我可以想到一百万不使用它的理由。如初。
3)内部活动是否会运行生命周期过程以及什么 恰好已经在运行MainActivity?
是。 &#34;内部&#34;活动将在正常的Activity生命周期中运行。 MainActivity
没有任何反应,因为AnotherActivity
正在运行时它没有运行。启动AnotherActivity
后,MainActivity
停止(onPause
,可能onStop
等)。