最近遇到的几个Android疑难问题

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传进来即可。

来源:http://blog.csdn.net/smfwuxiao/article/details/7375848
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值