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());
}
}
答案 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的“标准”方式