我的应用程序中有一项服务,我可以访问包含我需要的strings.xml文件。
我想获取strings.xml中的字符串,但我无法在我的服务中访问此文件。
我认为问题涉及上下文但我无法解决。
有我的服务摘录:
package com.receiver;
protected Void doInBackground() {
// GPS timeout
final int maxSeconds = 60; //30
int count = 0;
// If we've finished finding location or exceeded timeout,
// break the loop.
while (findingLocation && count < maxSeconds) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// Continue if interrupted
}
// Increment the timer by one second
count++;
}
// If we're still finding location, switch to network locations.
if (findingLocation) {
locationHandler.sendMessage(new Message());
locationManager.removeUpdates(SMSReceiver.this);
lat = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER).getLatitude();
lng = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER).getLongitude();
msg = "";// here I whant to get my string from the strings.xml but I can't access to this file
} else {
lat = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER).getLatitude();
lng = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER).getLongitude();
msg = " "; // here I whant to get other string from the strings.xml but I can't access to this file
}
感谢您的帮助。
抱歉我的英语不好。
答案 0 :(得分:3)
你正在接受Android服务吗?从您的代码片段看起来您想要从AsyncTask访问字符串。
对于常规Android服务,您可以使用getString()
中的Context
方法,因为Service
扩展了Context
。只需传入所需字符串的资源ID,就可以全部设置。
http://developer.android.com/reference/android/content/Context.html#getString(int)
为了从AsyncTask
访问字符串,我通常只将ApplicationContext传递给AsyncTask
,然后我可以访问我想要的任何内容。请记住,传递上下文可能会有问题,因此您可能希望将实际字符串传递给AsyncTask
,因此不需要Context
引用。