下面给出的android中这一行代码的含义...?

时间:2018-10-13 10:23:39

标签: android android-activity

import { Http } from '@angular/http';
import { Injectable } from '@angular/core';
import  "rxjs/add/operator/map";

@Injectable()
export class WeatherProvider {

  constructor(public http: Http) {
    console.log('Hello WeatherProvider Provider: ');    
  }
   getWeather() {
    return this.http.get('https://samples.openweathermap.org/data/2.5/forecast?q=London,us&appid=b6907d289e10d714a6e88b30761fae22').map(res=>res.json());      
  }

}

1 个答案:

答案 0 :(得分:0)

此代码是用于创建另一个活动并将其添加到最高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"))));

该意图需要一个上下文和一个类作为参数,上下文是“ this”(当前显示的活动中的当前上下文)

该类来自Class.forName(String),该类需要一个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的“标准”方式