小编Dan*_*ykt的帖子

java.lang.OutOfMemoryError:位图大小超过VM预算 - Android

我开发了一个在Android上使用大量图像的应用程序.

该应用程序运行一次,填满屏幕上的信息(Layouts,Listviews,Textviews,ImageViews,等)和用户读取的信息.

没有动画,没有特效或任何可以填充内存的东西.有时候抽屉可以改变.有些是android资源,有些是保存在SDCARD文件夹中的文件.

然后用户退出(该onDestroy方法被执行并且app由VM保持在内存中)然后在某个时刻用户再次进入.

每次用户进入应用程序时,我都可以看到内存越来越多,直到用户获得java.lang.OutOfMemoryError.

那么处理许多图像的最佳/正确方法是什么?

我应该把它们放在静态方法中,这样它们就不会一直装载吗?我是否必须以特殊方式清洁布局或布局中使用的图像?

memory android memory-leaks bitmap out-of-memory

157
推荐指数
7
解决办法
11万
查看次数

android视图没有附加到窗口管理器

我有以下一些例外情况:

java.lang.IllegalArgumentException: View not attached to window manager
at android.view.WindowManagerImpl.findViewLocked(WindowManagerImpl.java:355)
at android.view.WindowManagerImpl.updateViewLayout(WindowManagerImpl.java:191)
at android.view.Window$LocalWindowManager.updateViewLayout(Window.java:428)
at android.app.Dialog.onWindowAttributesChanged(Dialog.java:596)
at android.view.Window.setDefaultWindowFormat(Window.java:1013)
at com.android.internal.policy.impl.PhoneWindow.access$700(PhoneWindow.java:86)
at com.android.internal.policy.impl.PhoneWindow$DecorView.drawableChanged(PhoneWindow.java:1951)
at com.android.internal.policy.impl.PhoneWindow$DecorView.fitSystemWindows(PhoneWindow.java:1889)
at android.view.ViewRoot.performTraversals(ViewRoot.java:727)
at android.view.ViewRoot.handleMessage(ViewRoot.java:1633)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4338)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

我用谷歌搜索它,看到它与弹出窗口和转动屏幕有关,但没有引用我的代码.

问题是:

  1. 有没有办法找出这个问题发生的确切时间?
  2. 除了转动屏幕外,还有其他事件或动作会触发此错误吗?
  3. 我该如何防止这种情况发生?

android exception

110
推荐指数
3
解决办法
10万
查看次数

在Android中解析HTML

我试图从一个网页解析Android中的HTML,并且由于网页形成不好,我得到了SAXException.

有没有办法解析Android中的HTML?

html parsing android

80
推荐指数
3
解决办法
13万
查看次数

Android锁屏的来源

我正在寻找android锁屏的源代码.它可以适用于任何版本的Android(1.5,1.6,2.0等).

我尝试在https://android.googlesource.com/上查看存储库,但它看起来不像它platform/frameworks/base.也许它是封闭的来源?

android android-source

34
推荐指数
2
解决办法
6万
查看次数

策略模式和访客模式有什么区别?

我无法理解这两种设计模式.

你能不能给我一些背景信息或一个例子,这样我就可以得到一个清晰的想法,并能够映射出他们两者之间的差异.

谢谢.

在此输入图像描述

在此输入图像描述

oop design-patterns

33
推荐指数
4
解决办法
1万
查看次数

android finish()方法不会从内存中清除应用程序

我有一个活动,我调用finish()方法,活动不会从内存中清除.

在调用finish()之后,我看到onDestroy()方法成功执行(我清除了所有变量和内容).

它应该从内存中清除还是它的android如何工作?据我所知,活动的LifeCycle已经完成.

如果它将应用程序保留在内存中,以便在用户第二次使用它时运行得更快,那么我可以将哪些对象留在内存中以便重用?如果我理解正确,我想要清除onDestroy上的所有内容.

memory lifecycle android process android-activity

26
推荐指数
4
解决办法
5万
查看次数

Android - 绘图缓存 - 何时有用?

我读约setDrawingCacheEnabledgetDrawingCache,我想知道,当它的好处是使用它或当其并不好.

基本上在我的情况下,我有HorizontalScrollView很多内容,所以它的左/右滚动,大多数事情是不可见的.

如果我setDrawingCacheEnabled(true)在视图上使用它有帮助吗?或者这只是当我使用自定义视图并且我打电话的时候getDrawingCache()

是否还有其他'缓存'方式可供使用HorizontalScrollView

android caching

16
推荐指数
1
解决办法
1万
查看次数

Android - 数据库磁盘映像格式错误

在我的Android应用程序中我得到"数据库磁盘映像格式错误"获取此错误的原因是什么?

没关闭db?多个线程访问数据库?或者android刚刚被破坏了?

谢谢

android.database.sqlite.SQLiteDatabaseCorruptException: database disk image is malformed
   android.database.sqlite.SQLiteQuery.native_fill_window(Native Method)
   android.database.sqlite.SQLiteQuery.fillWindow(SQLiteQuery.java:75)
   android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:288)
   android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:269)
   android.database.AbstractCursor.moveToPosition(AbstractCursor.java:171)
   android.database.AbstractCursor.moveToFirst(AbstractCursor.java:248)
...
Run Code Online (Sandbox Code Playgroud)

database android

15
推荐指数
1
解决办法
2万
查看次数

关于膨胀xml的InvocationTargetException - android

我有一个代码在99%的时间内工作,因为在很多客户端部署,但有时我会得到以下内容:

java.lang.reflect.InvocationTargetException android.widget.LinearLayout.(LinearLayout.java:92)java.lang.reflect.Constructor.constructNative(Native Method)java.lang.reflect.Constructor.newInstance(Constructor.java:446)android .view.LayoutInflater.createView(LayoutInflater.java:499)com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:562)android.view .LayoutInflater.rInflate(LayoutInflater.java:617)android.view.LayoutInflater.inflate(LayoutInflater.java:407)android.view.LayoutInflater.inflate(LayoutInflater.java:320)com.mycode.mycode.MyClass.draw(xxxxxxx ).....

在我的代码上我有:

LayoutInflater li =(LayoutInflater)这个.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
theview = li.inflate(R.layout.partofthescreen,somecontainer,false);

所以问题是为什么我得到InvocationTargetException.

谢谢

xml android inflate

10
推荐指数
2
解决办法
2万
查看次数

Lollipop上的Android Gradient无法正常工作. - API 21

当我尝试在Lollipop上使用Gradient时,它不起作用.虽然它适用于所有以前的版本.

这是我的例子:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient android:type="radial" android:gradientRadius="500"
    android:startColor="#00417e" android:endColor="#001b34" />
Run Code Online (Sandbox Code Playgroud)

android gradient android-5.0-lollipop

10
推荐指数
2
解决办法
7555
查看次数