2017年5月24日 (周三) 大雨(超j8大)
自定義了一個類 App類 繼承了Application 類 定義一個靜態(tài)變量public static Context context;
import android.content.Context;
public class App extends Application {
private static Context context;
@Override
public void onCreate() {
context = getApplicationContext();
}
}
但是在調(diào)用APP.context
時程序報錯奔潰
開始以為是調(diào)用靜態(tài)變量 未實(shí)例化App 所以沒調(diào)用onCreate()
所以未執(zhí)行到context = getApplicationContext();
所以沒獲取到contenxt的原因 于是對App類做了稍微微的調(diào)整
import android.content.Context;
public class App extends Application {
private static Context context;
@Override
public void onCreate() {
context = getApplicationContext();
}
public static Context getContext(){
return context;
}
}
調(diào)用:Context context=new App().getContext();
按常理來說 類實(shí)例化后執(zhí)行了onCreate()
應(yīng)該獲取到了getApplicationContext()
但是...
程序依然報錯閃退
于是采用了萬能的問題解決方法
在查閱了大量資料后最終發(fā)現(xiàn)了問題
原來是AndroidManifest.xml
文件中未對自定義的App類進(jìn)行初始化
在``中添加了一行android:name="com.example.administrator.App"(你自定義的那個類名)
告知系統(tǒng)當(dāng)程序啟動的時候應(yīng)該初始化App類漩仙,而不是系統(tǒng)默認(rèn)的Application
執(zhí)行到Context context=App.context;
成功獲取到系統(tǒng)的Context