下面给出的这行代码在android中的含义。。。?
此代码用于创建另一个活动并将其添加到顶级UI级别下面给出的这行代码在android中的含义。。。?,android,android-activity,Android,Android Activity,此代码用于创建另一个活动并将其添加到顶级UI级别 startActivity(new Intent(this, Class.forName(getPackageManager().getApplicationInfo(getPackageName(), 128).metaData.getString("com.sadaf.javafiles.MAIN_ACTIVITY_CLASS_NAME")))); 可以从任何上下文/活动调用,主要用于 startActivity() 这用于关闭当前活动并
startActivity(new Intent(this, Class.forName(getPackageManager().getApplicationInfo(getPackageName(), 128).metaData.getString("com.sadaf.javafiles.MAIN_ACTIVITY_CLASS_NAME"))));
可以从任何上下文/活动调用,主要用于
startActivity()
这用于关闭当前活动并开始下一个活动
有关更详细的说明,请参阅:意图需要一个上下文和一个类作为参数,上下文是“this”(当前显示的活动的当前上下文) 该类来自class.forName(String),它需要一个字符串值才能从活动中获取类名 它从调用中获取该字符串值:
startActivity(new Intent(this, Class.forName(getPackageManager().getApplicationInfo(getPackageName(), 128).metaData.getString("com.sadaf.javafiles.MAIN_ACTIVITY_CLASS_NAME"))));
stringKey
是来自项目AndroidManifest.xml
文件android:name:
getPackageManager().getApplicationInfo(getPackageName(), 128).metaData.getString(stringKey)
因此,从本质上讲,这段代码所做的是以编程的方式获取声明的“主活动”的.class,而不是使用“标准”的方式进行MainActivity.class亲爱的!但这意味着什么呢?“主要活动类名称”
getPackageManager().getApplicationInfo(getPackageName(), 128).metaData.getString(stringKey)
<activity android:name="com.sadaf.javafiles.MAIN_ACTIVITY_CLASS_NAME" >
</activity>