在主屏的设置墙纸界面,由于墙纸图片太大,浏览墙纸大图的预览图时,产生了OOM错误。
异常提示:
E/InputManagerService( 177): Got RemoteException sending setActive(false) notification
E/InputManagerService( 177): android.os.DeadObjectException
E/InputManagerService( 177): at android.os.BinderProxy.transact(Native Method)
E/InputManagerService( 177): at com.android.internal.view.IInputMethodClient$Stub$Proxy.setActive(IInputMethodClient.java:158)
E/InputManagerService( 177): at com.android.server.InputMethodManagerService.unbindCurrentInputLocked(InputMethodManagerService.java:554)
E/InputManagerService( 177): at com.android.server.InputMethodManagerService.startInputLocked(InputMethodManagerService.java:616)
E/InputManagerService( 177): at com.android.server.InputMethodManagerService.startInput(InputMethodManagerService.java:700)
E/InputManagerService( 177): at com.android.internal.view.IInputMethodManager$Stub.onTransact(IInputMethodManager.java:113)
E/InputManagerService( 177): at com.android.server.InputMethodManagerService.onTransact(InputMethodManagerService.java:466)
E/InputManagerService( 177): at android.os.Binder.execTransact(Binder.java:276)
E/InputManagerService( 177): at dalvik.system.NativeStart.run(Native Method)
代码部分:
public class com.android.launcher.WallpaperChooser
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
requestWindowFeature(Window.FEATURE_NO_TITLE);
findWallpapers();
setContentView(R.layout.wallpaper_chooser);
mOptions = new BitmapFactory.Options();
mOptions.inDither = false;
mOptions.inPreferredConfig = Bitmap.Config.ARGB_8888;
mOptions.inSampleSize = 2;// fix it
... ...
public void onItemSelected(AdapterView parent, View v, int position, long id) {
final ImageView view = mImageView;
Bitmap b = BitmapFactory.decodeResource(getResources(), IMAGE_IDS[position], mOptions);// here throw the OOMError
... ...
解决方法:
1、调整merory useage
mOptions.inSampleSize = 2;//return an image that is 1/2 the width/height of the original, and 1/4 the number of pixels.
2、调整bitmap size
bitmap = Bitmap.createScaledBitmap(bitmap, 100, 150, false);
3、调整temp storage
mOptions.inSampleSize = new byte[100 * 1024];
参考:http://stackoverflow.com/questions/477572/android-strange-out-of-memory-issue
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/netpirate/archive/2009/06/10/4257854.aspx
posted on 2009-08-29 23:28
Xu Jianxiang 阅读(325)
评论(0) 编辑 收藏 所属分类:
Android