我的应用程序使用SharedPreferences(在PreferenceActivity的帮助下)存储所有设置.但有时会删除所有设置,并将所有值设置回默认值.主要在Android 3.x标签上.在普通的智能手机上没有问题.
我发现,当应用程序进程被Android杀死时,所有设置都会被删除.我注意到了这一点,因为不再显示通知图标.我也想知道为什么这个过程会在平板电脑而不是智能手机上被杀死.在我的智能手机上,通知图标永远不会消失.
我的应用程序还有一个服务,主要进程和服务都对SharedPreferences进行读写设置.我有时会注意到,一旦服务写入SharedPreferences,所有设置都会被清除.但它并不是每次都会发生.
有任何想法吗?我意识到SharedPreferences不应该被不同的进程使用,但它适用于所有智能手机而没有问题!
从Android 4.3开始,我收到以下stacktraces:
[STACKTRACE] => java.lang.SecurityException: uid 10140 does not have android.permission.UPDATE_APP_OPS_STATS.
at android.os.Parcel.readException(Parcel.java:1431)
...
Run Code Online (Sandbox Code Playgroud)
在以下行抛出异常:
notificationManager.notify(0, notification.build());
Run Code Online (Sandbox Code Playgroud)
我尝试了Android 4.3的新的resticted用户功能,在这个用户下推出了我的应用程序,显示了通知,没有任何问题.
有任何想法吗?
更新我的应用程序后,有时所有旧的小部件都会从主屏幕消失.在app启动器/小部件选择器中,我的三个小部件出现两次 - 直到重启!
有什么建议?
我尝试拨打电话号码03012345,1234,#31#,98765(使用FRITZ!Box拨通)
“ 03012345”是FRITZ!Box的电话号码,“,”是拨号暂停,“#31#”是向被叫方显示我自己的电话号码的前缀,而“ 98765”是被叫方的电话号码。
String phonenumber = "03012345,1234,#31#,98765";
startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phonenumber)));
Run Code Online (Sandbox Code Playgroud)
在我的智能手机上,一切正常,但是一些用户向我报告说,他们的智能手机在第一个#号后停止拨号。但是,当他们从联系人拨号时,它可以工作。
也许,Uri.parse拆分电话号码?还是有另一种方式拨打这样的电话号码?
这种刷新可绘制在某些设备上模糊,例如Galaxy Tab 10.1N(Android 3.2).我的Nexus 7(Android 4.4)没问题.


<ImageButton
android:id="@+id/buttonrefresh"
android:layout_width="52dip"
android:layout_height="fill_parent"
android:layout_alignParentRight="true"
android:adjustViewBounds="true"
android:scaleType="fitCenter"
android:background="@drawable/widget_button_background"
android:padding="2dip"
android:src="@drawable/ic_action_refresh"/>
Run Code Online (Sandbox Code Playgroud)
ic_action_refresh位于res/drawable_xxhdpi,大小为96x96像素.可能是什么原因?
我有问题找到我的快捷方式的正确的启动器图标大小.
在我的Nexus 7.2上,android.R.dimen.app_icon_size(参见代码)的值为96像素.但是,如果我在主屏幕的屏幕截图上测量其他应用的真实图标大小,则为120像素.创建一个shortshut后,它比所有其他应用程序图标(120px)更小(96像素)
在我的三星Galaxy SII android.R.dimen.app_icon_size是72.这匹配我的截图测量.
这里的结果
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
Run Code Online (Sandbox Code Playgroud)
Nexus 7.2:
android.R.dimen.app_icon_size = 96
metrics.dip = 192
metrics.density = 2.0
metrics.densityDpi = 320
metrics.heightPixels = 1824
metrics.scaledDensity = 2.0
metrics.widthPixels = 1200
metrics.xdpi = 320.842
metrics.ydpi = 322.966
Run Code Online (Sandbox Code Playgroud)
三星SII:
android.R.dimen.app_icon_size = 72
metrics.dip = 108
metrics.density = 1.5
metrics.densityDpi = 240
metrics.heightPixels = 800
metrics.scaledDensity = 1.5
metrics.widthPixels = 480
metrics.xdpi = 217.71428
metrics.ydpi = 218.49463
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
// Calculate launcher icon size
int size = (int) …Run Code Online (Sandbox Code Playgroud)