我正在调用上传图片api,在后台运行的(function() {
for( const data in node.dataset ) {
// First remove the 'map' as this isn't required, then split any values with multiple capitals,
// as these corrospond to multilevel object values.
var key = (data.replace("map", "")).split(/(?=[A-Z])/), value = node.dataset[data];
// Pin Size
const findOption = function(val) {
return options[val.toLowerCase()];
};
// Check that there is a value
if (value !== null) {
var opt = null;
// Find the corresponding default option
for (var x = 0; key.length > x; x++) {
opt = findOption(key[x]);
}
opt = value;
}
}
console.log(options);
}.call(_));
中将图片上传到服务器。
调用IntentService,IntentService
方法并在后台运行,据我所知,onHandleEvent
将执行任务并调用IntentService
方法。
在我的应用程序中,当我杀死我的应用程序时正在进行上传,上传已终止并且stopSelf()
已停止完成上传任务。
即使应用程序被杀,我怎样才能使IntentService
运行?
编辑1:我尝试使用Sticky服务,当我杀死应用程序时服务重新启动并且传递给IntentService
方法的Intent数据为null
答案 0 :(得分:0)
您可以尝试以下代码。首先,您需要在Manifest文件中添加Service的属性
<service
android:name=".service.Service"
android:enabled="true"
android:icon="@drawable/ic_launcher"
android:isolatedProcess="true">
</service>
并在您的服务中添加START_STICKY
。
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return START_STICKY;
}
答案 1 :(得分:0)
您可以按照以下步骤中的说明创建服务,以使服务始终保持运行
1)在服务onStartCommand方法中返回START_STICKY。
public int onStartCommand(Intent intent, int flags, int startId) {
return START_STICKY;
}
2)使用startService(MyService)在后台启动服务,这样无论绑定客户端的数量如何,它始终保持活动状态。
Intent intent = new Intent(this, PowerMeterService.class);
startService(intent);
3)创建活页夹。
public class MyBinder extends Binder {
public MyService getService() {
return MyService.this;
}
}
4)定义服务连接。
private ServiceConnection m_serviceConnection = new ServiceConnection() {
public void onServiceConnected(ComponentName className, IBinder service) {
m_service = ((MyService.MyBinder)service).getService();
}
public void onServiceDisconnected(ComponentName className) {
m_service = null;
}
};
5)使用bindService绑定到服务。
Intent intent = new Intent(this, MyService.class);
bindService(intent, m_serviceConnection, BIND_AUTO_CREATE);