我有一些代码可以成功编译使用ViewTreeObserver#removeOnGlobalLayoutListener(...)
,当它运行时,此方法抛出NoSuchMethodError
.为什么?
有没有办法检测用户在Android中重置Android系统时钟的时间?
我正在设计一个应用程序,它使用系统时间来确定用户何时在特定时间某个地点,并且我不想在此时依赖网络可用性.显然,知道用户何时更改系统时钟是很好的,因此他们不能"作弊".
我想从SQLite查询返回的Cursor中获取一个整数,但我知道整数可能为null.不幸的是我找不到允许我检查这个的任何Cursor方法.
代码将是
mModifiedDate = cursor.getInt(cursor.getColumnIndex(MODIFIED_DATE));
Run Code Online (Sandbox Code Playgroud)
我希望有一个可能的空值,这实际上是出于各种原因所希望的 - 字段是指第二个表被修改的时间,第一个表可以在第二个表之前填充.不幸的是,Cursor的文档说,无论是抛出异常,还是返回错误值,还是其他行为都留给实现,而SQLiteCursor文档没有说明任何内容.
如果该字段为空,此代码将执行什么操作?有没有办法在调用getInt()之前检查这个?
我正在为Android Honeycomb编写一个内存密集型应用程序,并且尽可能地对recycle()
未使用的Bitmap
s 进行了非常小心的处理.实际上,这对于应用程序来说是必要的,因为Bitmap
s不断地循环进出内存.但是,我刚刚实现onConfigurationChanged()
了Activity
,因此(由于多种原因)我试图将内存释放例程放入其中onStop()
.
目前我的onStop()
方法:
View
s来显示默认值Drawable
;recycle()
对Bitmap
以前使用的这些小号View
秒;Bitmap
s的引用.不幸的是,使用Eclipse内存分析器,它似乎对内存使用没有任何影响.
你可以想象,我已经做了很多努力,用一种名义上垃圾收集的语言来释放资源,我希望能有更多的效果.所以我的问题是:做recycle()
什么?它是否实际上触发了垃圾收集,或者系统是否会保留在内存中 - 即使你调用System.gc()
-until它感觉需要摆脱某些东西?
NB我知道Bitmap
s实际上并没有被保存在常规堆中,但我认为调用recycle()
足以确保它们被从本机堆中删除.
答案的一部分
我发现如果一个ImageView
包含Bitmap
已经被回收的Bitmap
数据,那么数据仍会保留在内存中,直到setImageBitmap(null)
被调用ImageView
.甚至可能是这种情况,如果setImageResource(...)
或被setImageDrawable(...)
调用(它们是在一个相对较小的九个补丁中加载 - 但是,MAT分析显示这并没有删除Bitmap
包含在私有成员中的大数据ImageView
).简单地调用此函数onStop()
已经从我们的应用程序堆中剔除了大约10MB.显然,这可能不适用于预装的Honeycomb版本的Android.
我注意到设备可能同时登录了多个Google帐户.据我所知,在Honeycomb之前,有一个主要ID; 从Honeycomb上你可以简单地插入几个.我目前有两个ID登录到我的测试平板电脑.
从Google Play购买时,您可以选择用于购买的帐户.我想在我正在编写的应用程序中添加应用内结算功能,并且我想确保每个Google ID都可以在任何设备上购买,这意味着我需要知道首先使用哪个ID进行购买.这意味着我需要执行以下操作之一:
文档似乎是在假设只有一个购买者在一个设备上活动的情况下编写的.是否有可能做到这一点?
我正试图同步两个ViewPager
s,因为在我之前显然有很多人,而且我已经达到了这个目标:
private ViewPager mNavPager;
private ViewPager mMainPager;
private final OnPageChangeListener mNavPagerListener = new OnPageChangeListener() {
private boolean mNavDragging;
private int mScrollPosition;
@Override
public void onPageSelected(int position) {
mScrollPosition = position;
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
if(mNavDragging)
mMainPager.scrollTo(positionOffsetPixels, 0);
}
@Override
public void onPageScrollStateChanged(int state) {
switch(state) {
case ViewPager.SCROLL_STATE_DRAGGING:
case ViewPager.SCROLL_STATE_SETTLING:
mNavDragging = true;
break;
case ViewPager.SCROLL_STATE_IDLE:
mNavDragging = false;
break;
}
}
};
private OnPageChangeListener mMainPagerListener = new OnPageChangeListener() {
private …
Run Code Online (Sandbox Code Playgroud) 我目前正在大量修改/重写一个Android应用程序,我看到一个非常偶然的崩溃沿着以下几行:一个CursorAdapter
方法被调用,它调用AbstractWindowedCursor#checkPosition()
,和:
02-20 15:03:18.180 E/AndroidRuntime(17143): android.database.StaleDataException: Attempting to access a closed CursorWindow.Most probable cause: cursor is deactivated prior to calling this method.
02-20 15:03:18.180 E/AndroidRuntime(17143): at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:139)
02-20 15:03:18.180 E/AndroidRuntime(17143): at android.database.AbstractWindowedCursor.getLong(AbstractWindowedCursor.java:74)
02-20 15:03:18.180 E/AndroidRuntime(17143): at android.database.CursorWrapper.getLong(CursorWrapper.java:106)
02-20 15:03:18.180 E/AndroidRuntime(17143): at android.widget.CursorAdapter.getItemId(CursorAdapter.java:220)
Run Code Online (Sandbox Code Playgroud)
麻烦的是,我们没有关闭任何Cursor
s.我们所有的Cursor
s都来自CursorLoader
s而且又是由a产生的ContentProvider
.我们要传递Cursor
到每个相应的CursorAdapter
从LoaderCallbacks
,我们正在注册Cursor
中的通知ContentProvider
,我们通知了ContentResolver
从各insert(...)
,delete(...)
和update(...)
......总之我找不到任何理由为什么Cursor
会在使用中关闭一段时间.
那么:a 的其他原因是 …
android staledataexception android-contentprovider android-loadermanager android-loader
我想创建一个自定义类,当在Android XML文件中布局时,该类将颜色作为其属性之一.但是,颜色可以是资源,也可以是多种直接颜色规范之一(例如十六进制值).是否有一个简单的首选方法用于AttributeSet
检索颜色,因为表示颜色的整数可以指代资源值或ARGB值?
我正在HttpPost
Android中创建一个对象,以便与客户端运行的服务器进行通信.不幸的是,服务器没有向我们提供非常有用的错误消息; 我希望将HttpPost
对象的内容看作一个字符串,这样我就可以将它发送给我们的客户端,他可以将它与他期望的内容进行比较.
如何将HttpPost对象转换为一个字符串,反映它到达服务器时的外观?
我正在使用Toast.makeText来显示对话框的结果并且有一个奇怪的问题:文本显示在应该保持它的框架上方,如下所示:
消息未与帧错位.请更好地对齐它.[ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ ___ ]
我通常使用的代码看起来像
Toast bread = Toast.makeText(getContext(), R.string.message, Toast.LENGTH_LONG);
bread.show();
Run Code Online (Sandbox Code Playgroud)
从对话框.我听说不好的情况有时候会导致通货膨胀问题,但是getOwnerActivity()
会返回null,所以就这样了.在任何情况下,我都认为getContext()会提供在构造时传递的上下文,无论如何都是活动.
有什么建议?