我正在开发一个Android应用程序.我正在使用android 2.2
在我的应用程序中,我正在捕获GPS数据并以1小时的时间间隔将其发送到服务.如果用户退出应用程序,它也可以正常工作(这是必需的).
我正在使用2个服务(用户定义),一个用于捕获GPS数据,另一个用于发送到服务器.
在这里我怀疑
在服务中,我们可以使用共享首选项.
如果我们将任何数据存储在应用程序的任何活动中的共享首选项中,我们是否可以在共享首选项的帮助下使用该服务中的数据?
我在Eclipse(Helios)中有一个Android(2.2)项目.我想在项目中添加一个MP3文件,以便将MP3文件与应用程序一起部署到设备中.
然后我想打开文件作为File对象,这意味着我需要知道设备上文件的完整路径(?),但我不知道如何在Android中指定路径.
我正在创建一个Android类库,它调用内部REST API,并且还使用需要Context的Android的Geocoder类(特别是getFromLocation()).我打算让库成为一个IntentService来允许它以异步方式运行,但是我无法弄清楚如何处理Context(GeoLoc调用是在一个单独的类中,它是IntentService调用的库的一部分).
我的问题是,如何从IntentService中获取实例化android.location.Geocoder所需的上下文?
当我尝试从内存中读取XML文件并进入对象时,我收到以下错误.看起来像获取上下文的问题.谁能告诉我我的代码有什么问题?
码:
public class WifiScanning extends Service {
private static final String TAG = "WifiScanning";
private Timer timer;
public int refreshRate;
public WifiScanning() {
super();
Configuration config = new Configuration();
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp;
XMLReader xr = null;
DataHandler dataHandler = null;
try {
sp = spf.newSAXParser();
xr = sp.getXMLReader();
dataHandler = new DataHandler();
xr.setContentHandler(dataHandler);
xr.parse(new InputSource(this.openFileInput("config.xml")));
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block …Run Code Online (Sandbox Code Playgroud) 如何通过传递context服务putExtra?
问题是:android.os.Application无法转换为java.io.Serializable
如何解决这个问题呢?
// main activity
public void btnGetLocate() {
Intent intent = new Intent(this, Sleeper.class);
intent.putExtra("context", (Serializable) getApplicationContext());
startService(intent);
}
// another file
public class MyService extends IntentService {
public Sleeper() {
super("MyService");
}
protected void onHandleIntent(Intent intent) {
Context context = (Context) intent.getExtras().getSerializable("context"); // make Error, main problem
MyClass mc = new MyClass(context);
...
}
public void onDestroy() {
super.onDestroy();
Toast.makeText(this, "destroyed"), Toast.LENGTH_SHORT).show();
}
}
Run Code Online (Sandbox Code Playgroud) 我在Activity中使用了getApplication().bindService()或者只是bindService().是一个优于另一个.考虑到Activity具有生命周期,在什么情况下将使用Application上下文来启动/绑定到服务.