onHandleIntent - 应用程序关闭时Internet连接无法正常工作

时间:2016-01-19 17:35:53

标签: android intentservice android-wallpaper

我正在使用IntentService在后台更改壁纸。它会在收到推送通知时被调用。如果在应用程序打开时收到通知,则下面的代码可以正常工作。但是,如果关闭/杀死应用程序(通过使用菜单按钮滑动它),则无法正常工作

 COMPONENTS          ACTION CREATORS           STORES

    |----------------------<<<<-------------------|
    |                                             |
|------|            |------------|            |-------|
|      |  request   |            |  request   |       |
| VIEW | ---------> |            | ---------> | MODEL |----
|      |            |            |            |       |   |
|------|            |            |            |-------|   |
                    | CONTROLLER |                        |
|------|            |            |            |-------|   |
|      |  request   |            |  request   |       |   |
| VIEW | ---------> |            | ---------> | MODEL |   |
|      |            |            |            |       |   |
|------|            |------------|            |-------|   |
   | |                                           |        |
   | |--------------------<<<<-------------------|        |
   |----------------------<<<<----------------------------|

打开应用程序时工作正常。关闭/杀死时,它无法在@Override protected void onHandleIntent(Intent intent) { //Toast.makeText(this, "Intent", Toast.LENGTH_SHORT).show(); sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE); String imageUrl = intent.getExtras().getString("imageUrl"); try { URL url; try { WallpaperManager myWallpaperManager = WallpaperManager .getInstance(this); url = new URL( imageUrl); Bitmap bmp = BitmapFactory.decodeStream(url .openConnection().getInputStream()); myWallpaperManager.setBitmap(bmp); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (Exception e) { e.printStackTrace(); } PushReceiver.completeWakefulIntent(intent); }

下载图像

下面是堆栈跟踪。

我正在使用Mi3小米设备(不确定这是否有帮助)

App拥有android.permission.INTERNET,android.permission.ACCESS_NETWORK_STATE

的权限
BitmapFactory.decodeStream(url.openConnection().getInputStream())

1 个答案:

答案 0 :(得分:0)

&#34;限制背景数据&#34;该应用程序的设置已关闭。我打开它,一切都开始工作了。

@MateuszHerych砰的一声。