【发布时间】:2016-03-06 21:08:09
【问题描述】:
我正在使用 IntentService 将数据保存到 SQLDatabase 并将数据上传到 Parse。如果我保持应用程序运行,IntentService 工作正常。如果我最小化它(通过按下主页按钮),它也会正确执行。
但是如果我按下导航按钮并破坏应用程序(应用程序屏幕缩小并且您将其滑掉的东西);然后 IntentService 停止运行(它甚至不调用 onDestory)。
我想要的是让服务执行所有任务;和毁灭本身。因此,不需要 START_STICKY (Intent),因为我不希望它在后台连续运行。
启动 IntentService
Intent intent_publishService = new Intent(getApplicationContext(), PublishService.class);
Bundle basket_storyData = new Bundle();
basket_storyData.putAll( packStoryData() );
intent_publishService.putExtra(KEY_BASKET_STORY_DATA, basket_storyData);
intent_publishService.putParcelableArrayListExtra(KEY_BASKET_IMAGE_DATA, (ArrayList<? extends Parcelable>) final_image_data);
startService(intent_publishService);
PublishService.class (片段)
@Override
protected void onHandleIntent(Intent intent)
{
Log.i(TAG, "ONHANDLEINTENT" );
context = getApplicationContext();
final String KEY_BASKET_IMAGE_DATA = "key_basket_image_data";
final String KEY_BASKET_STORY_DATA = "key_basket_story_data";
final String KEY_BASKET_EXTRA = "key_basket_extra";
ArrayList<ImagesData> _iDataSave = new ArrayList<ImagesData>();
_iDataSave.addAll( (Collection<? extends ImagesData>) intent.getParcelableArrayListExtra(KEY_BASKET_IMAGE_DATA) );
Log.i(TAG, "_iDataSize:" + Integer.toString(_iDataSave.size()) );
//Get Bundle Values
Bundle storyBundle = intent.getBundleExtra(KEY_BASKET_STORY_DATA);
publishStory(storyBundle, _iDataSave);
}
Edit1:清单声明
<service android:name="com.example.create.main.PublishService" />
已解决
【问题讨论】:
标签: android android-intent service android-service intentservice