startActivity(new Intent(this, Class.forName(getPackageManager().getApplicationInfo(getPackageName(), 128).metaData.getString("com.sadaf.javafiles.MAIN_ACTIVITY_CLASS_NAME"))));
这段代码是创建另一个活动并将其添加到顶部 UI 级别
startActivity()
可以从任何上下文/活动中调用,主要用于
finish()
startActivity(new Intent(this, NewActivity.class));
这用于关闭当前活动并开始下一个活动
更详细的解释请参考:https :
//developer.android.com/training/basics/firstapp/starting-activity#BuildIntent
startActivity(new Intent(this, Class.forName(getPackageManager().getApplicationInfo(getPackageName(), 128).metaData.getString("com.sadaf.javafiles.MAIN_ACTIVITY_CLASS_NAME"))));
Intent 需要一个上下文和一个类作为参数,上下文是“this”(当前正在显示的活动的当前上下文)
该类来自 Class.forName(String),它需要一个 String 值才能从活动中获取类名
它从调用中获取该字符串值:
getPackageManager().getApplicationInfo(getPackageName(), 128).metaData.getString(stringKey)
stringKey
是来自项目AndroidManifest.xml
文件 android:name:
<activity android:name="com.sadaf.javafiles.MAIN_ACTIVITY_CLASS_NAME" >
</activity>
所以本质上,这段代码所做的是以编程方式获取声明的“主要活动”的 .class,而不是使用“标准”的方式去 MainActivity.class
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句