我有一个 android 服务,在 onStart 方法中,我从 Intent 活动中获取了许多字符串,然后执行 AsynTask 以从 Internet 下载文件。
当活动运行时,这可以正常工作,但是当我停止活动时,这会重新启动 onStart 方法,但显然意图是 null 导致我出现 nullPointerException。
我可以做什么服务不要在 onStart 上输入,并继续第一个 asyntask 以下载所有文件?
这是我的代码
@Override
public void onStart(Intent intent, int startId) {
desde = intent.getIntExtra("desde", 0);
hasta = intent.getIntExtra("hasta", 1);
email = intent.getStringExtra("email");
password = intent.getStringExtra("password");
new DescargaFotos().execute();
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
在 Inicio.java 中(UI 活动)
Intent iService = new Intent(contexto,
ServiceDownloader.class);
iService.putExtra("desde", 0);
iService.putExtra("hasta", 5);
iService.putExtra("email", email);
iService.putExtra("password", password);
startService(iService);
编辑:
新问题:
我正在使用 IntentService 并像这样绑定服务:
Intent iService = new Intent(contexto,
ServiceDownloader.class);
ServiceConnection serviceConector = new ServiceConnection() {
@Override
public void onServiceDisconnected(ComponentName name) {
Log.i("INFO", "Service bound ");
}
@Override
public void onServiceConnected(ComponentName name,
IBinder service) {
Log.i("INFO", "Service Unbound ");
}
};
iService.putExtra("desde", 0);
iService.putExtra("hasta", 50);
iService.putExtra("email", email);
iService.putExtra("password", password);
startService(iService);
bindService(iService, serviceConector,
Context.BIND_AUTO_CREATE);
现在我的问题是,在我的银河系关系中,如果我进入应用程序运行时列表并销毁我的应用程序,服务停止,停止下载,停止发送通知等?我必须如何绑定服务来解决这个问题?