此调用发生在片段中,偶尔会因NullPointerException而崩溃,尤其是当应用程序未在前台运行时:
.getActivity()getApplication());
当从服务器返回反馈或需要重新绘制片段时,会发生此调用.我不确定为什么这个调用会抛出一个NPE,当Activity被GCed时,片段是否可以保留在内存中?
如果它有所不同,我使用SwipeyTab ViewPager来显示不同的片段.
java android garbage-collection android-ui android-fragments
我觉得奇怪NullPointerException.我的代码没有指向.另外我知道我的应用程序仅在以下情况下提供此NullPointerException:
制造商:索尼爱立信
产品:MT11i_1256-3856
Android版本:2.3.4
有任何想法吗?
java.lang.NullPointerException
at android.widget.AbsListView.contentFits(AbsListView.java:722)
at android.widget.AbsListView.onTouchEvent(AbsListView.java:2430)
at android.widget.ListView.onTouchEvent(ListView.java:3447)
at android.view.View.dispatchTouchEvent(View.java:3952)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:995)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1034)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1034)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1034)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1034)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1711)
at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1145)
at android.app.Activity.dispatchTouchEvent(Activity.java:2096)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1695)
at android.view.ViewRoot.deliverPointerEvent(ViewRoot.java:2217)
at android.view.ViewRoot.handleMessage(ViewRoot.java:1901)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3701)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:624)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud) java android nullpointerexception android-ui android-listview

嗨
我已经附上了两个应用程序图像,它们具有网格视图,如具有不同图像高度和宽度的小部件,动态加载,我需要创建相同类型的UI,如果有人引导我开始,我会很高兴.
我正在尝试创建一个可缩放的容器,我的目标是API 14+
在我的onScale中(我使用ScaleGestureDetector来检测捏缩放)我正在做这样的事情:
public boolean onScale (ScaleGestureDetector detector) {
float scaleFactor = detector.getScaleFactor();
setScaleX(getScaleX() * scaleFactor);
setScaleY(getScaleY() * scaleFactor);
return true;
};
Run Code Online (Sandbox Code Playgroud)
它工作但缩放不顺畅.事实上,它明显闪烁.
我也尝试过硬件层认为一旦纹理上传就会在GPU上进行缩放,因此速度非常快.但它并没有什么区别 - 变焦不是很平滑,有时候也很奇怪.
我究竟做错了什么?
我已经使用爆炸动画实现了两个片段之间的转换(标准谷歌过渡 - > http://goo.gl/tE5xzl).有没有机会确定爆炸的方向?
问题是,当我之前将背板拉到我的片段时,我会得到一个随机动画,其爆炸方向不同.这看起来对用户来说有点混乱.
谢谢你的帮助 :)
android android-ui android-layout android-fragments android-transitions
我有一个更新数据库操作,它有一个活动,它不断更新百分比,并在AsyncTask中运行.
在doInBackground()内部,我调用更新数据库并继续更新活动百分比的控制器,但是,如果按下主页按钮或后退按钮,操作将被取消.你建议我做什么?
我试图在doInBackground()中启动一个服务,所以它会在后台运行,但看起来它不起作用.
我的代码看起来像这样:
public class UpdateDatabaseAsyncTask extends AsyncTask<Void, Integer, Integer>
{
@Override
public void onPreExecute()
{
mCustomProgressBar.startAnimation();
}
@Override
public Integer doInBackground(Void... params)
{
return mController.updateDatabase();
}
@Override
public void onPostExecute(Integer result)
{
mCustomProgressBar.stopAnimation();
// finish the activity
}
@Override
public void onProgressUpdate(Integer... value)
{
updatePercentageValue(value[0]);
}
public void callPublishProgress(Integer value)
{
publishProgress(value);
}
}
Run Code Online (Sandbox Code Playgroud)
在控制器内部,我调用方法callPublishProgress(value)传递当前百分比值,因此它将publishProgress(value)在UI中.
我正在调试,我按下了home/back按钮,它就停止了运行工作线程.
我尝试的另一个解决方案是启动一个服务在后台运行,无论用户是否按下主页/后退按钮,所以我想,服务会调用执行工作的控制器方法,它会调用callPublishProgress(value)无论如何要更新UI上的百分比值.
然而,正在发生的是,代码到达doInBackground() 并启动服务,但它onPostExecute()立即进行,它只是没有等待服务完成(当然!).所以它给了一个NullPointerException.我想doInBackground()在服务中设置一个标志来创建一个循环,所以它会在服务尚未完成时离开这个循环(我使用的是IntentService),但它仍无法正常工作.
我也想过使用Timer.但我不知道.
我正在阅读关于线程等的文档中的文章.它建议使用AsyncTask,就像我试图做的那样.它还谈到了 …
请看下面:

我尝试使用绝对布局,但不推荐使用.感谢您的帮助,谢谢.
我正致力于片段转换.当我用第二个片段替换第一个片段时,它出现在第一个片段下面.我希望它移动到第一个片段之上.我怎样才能做到这一点?
fragmentTransaction.setCustomAnimations(animEnter, animExit, animPopEnter, animPopExit);
fragmentTransaction.replace(R.id.fragmentListView, fragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
Run Code Online (Sandbox Code Playgroud) android android-custom-view android-ui android-fragments android-view
如何在android中更改单选按钮的边框颜色?
我想改变android单选按钮的圆圈颜色.
提前致谢.任何帮助是极大的赞赏.
我尝试了不同的解决方案和关注,如果有任何属性是其他可绘制的图像
现在我正在使用uiautomator像这样转储UI:
adb shell uiautomator dump
Run Code Online (Sandbox Code Playgroud)
它工作正常,但执行它需要大约3秒钟.所以我想知道是否有更快的方法呢?就像创建一个转储UI的服务一样,还是需要一段时间?