1、Service运行2小时之后被系统关闭
我的Service在真机上运行了大约1~2小时之后,被系统关闭然后重新创建。
onStartCommand() 返回的是 START_STICKY,但是,当系统重新创建该Service之后,只调用了 onCreate(),
并没有调用Service 的 onStartCommand()。
解决办法: 把所有初始化操作放入 onCreate()
2、Camera被其他进程占用时,调用 Camera.open() 导致进程异常终止
解决办法就是用 try{...} Exception {...}
把一切异常都湮灭
3、如何在Service中更新App Widget:
典型代码如下:
AppWidgetManager mgr = AppWidgetManager.getInstance(this);
int[] ids = mgr.getAppWidgetIds(new ComponentName(this, FlashlightWidgetProvider.class));
for ( int id : ids ) {
RemoteViews views = new RemoteViews(getPackageName(), R.layout.widget_flashlight);
操作views(把views看做App Widget)
mgr.updateAppWidget(id, views);
}
4、PopupWindow 如何设置动画
在 res/values 下新建一个xml文件,文件名任意,例如res/values/styles.xml,
创建一个style资源,例如:
<style name="AnimationPopup"> <item name="@android:windowEnterAnimation">@anim/popup_show</item> <item name="@android:windowExitAnimation">@anim/popup_hide</item> </style>
这个style资源应该包含两个item,一个用于出现,另一个用于消失。这两个item都是动画资源。
然后,调用 PopupWindow.setAnimationStyle(int),把R.style.AnimationPopup传进来即可。