美文网首页
andorid开发小知识

andorid开发小知识

作者: 念念不忘_2016 | 来源:发表于2019-01-04 15:58 被阅读0次

android 8种对话框(Dialog)使用方法汇总
作者:@gzdaijie
本文为作者原创,转载请注明出处:http://www.cnblogs.com/gzdaijie/p/5222191.html

获取手机型号

1. 获取手机型号:
String   model= android.os.Build.MODEL;
2. 获取手机厂商:
String carrier= android.os.Build.MANUFACTURER;
这里需要注意的是,SDK1.5是不支持这个参数的。

这个很好
从源码中我们可以看出FragmentStatePagerAdapter中fragment实例在destroyItem的时候被真正释放,所以FragmentStatePagerAdapter省内存。FragmentPagerAdapter中的fragment实例在destroyItem的时候并没有真正释放fragment对象只是detach,所以FragmentPagerAdapter消耗更多的内存,带来的好处就是效率更高一些。所以得出这样的结论:FragmentPagerAdapter适用于页面比较少的情况,FragmentStatePagerAdapter适用于页面比较多的情况,因此不同的场合选择合适的适配器才是正确的做法
setOnItemClickListener()方法中position是从0开始计算的

selector排序

java中Collections.sort排序详解
http://blog.csdn.net/tjcyjd/article/details/6804690

android服务的关闭问题

1.先调用startService然后点击bindService然后再点击stopService
 吓一跳,怎么不是我所想的最后会执行销毁的方法!原来[android](http://lib.csdn.net/base/android)中startService开启服务后再bindService绑定服务就不能通过stopService来停止服务.需要先调用unbindService再调用stopService来停止服务
2.先调用bindService然后点击startService然后再点击stopService
![](https://img.haomeiwen.com/i6562341/0d3b3252a3ac0892?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

这里和上面是一样的结果,通过bindService启动服务的,之后只能靠unbindService来停止服务,并且只能调用一次,否则会挂掉,还有就是因为是绑定的,所以Activity退出的时候也会销毁这个服务
需求:在activity中要得到service对象进而能调用对象的方法,但同时又不希望activity finish的时候service也被destory了。
startService和bindService混合使用就派上用场了。
首先要明确的一点就是不管startservice和bindservice操作的都是同一个service对象。
**混合使用的生命周期:**
先startservice后bindservice : oncreate()—>onstartcommand()—>onbind()
先bindservice 后startservice: oncreate()—>onbind ()—>onstartcommand()
销毁时候的生命周期:
stopService:没有调用onDestory()    Service仍然在运行!unbindService:调用onUnbind()->onDestory()    此时Service关闭!
unbindService:调用onUnbind()    Service仍然在运行!stopService调用onDestory()    此时Service才关闭!

[图片上传中。。。(4)]gradle配置路径

android请求权限问题

请求权限,经测试发现TabActivity管理Activity时,在Activity中请求权限时需要传入父Activity对象,即TabActivity对象,并在TabActivity中重写onRequestPermissionsResult并分发到子Activity,否则回调不执行 。TabActivity回调中 调用

TAbActivity中的回调代码
@TargetApi(Build.VERSION_CODES.M)
    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
       getLocalActivityManager().getCurrentActivity()
        .onRequestPermissionsResult(requestCode, permissions, grantResults);
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    }
分发到子Activity
TAbActivity的字Activity代码
 ActivityCompat.requestPermissions(Activity_test.this.getParent(),
        new String[]{ Manifest.permission.CALL_PHONE }, REQUEST_CODE);

正则表达式相关内容

 需要匹配的内容为:
【页面信息】:预览演示[url=http://w1.ttkefu.com/k/yulan.jsp?fgid=2H7CG8]http://w1.ttkefu.com/k/yulan.jsp?fgid=2H7CG8[/url]
正则表达式之匹配规则  
Pattern patternURL = Pattern.compile("\\[url.{8,}\\[\\/url\\]");
Matcher matcherURL = patternURL.matcher(content);
    if (matcherURL.find()) { //确定内容是否与正则表达式匹配
              String s1=matcherURL.group();//截取正则表达式匹配的文本
              String mm = s1.substring(5,matcherURL.group().length() - 6);
              String[] file_name = mm.split("]");//已"]"这个符号将字符串分割成字符串数组
              file_name[0]=http://w1.ttkefu.com/k/yulan.jsp?fgid=2H7CG8  
              file_name[1]=http://w1.ttkefu.com/k/yulan.jsp?fgid=2H7CG8 
              String s2 = content.replace(matcherURL.group(),""); //将正则表达式匹配的内容替换为空,留下正则表达式外面的内容
              s2的内容为:【页面信息】:预览演示  
              s1的内容为:[url=http://w1.ttkefu.com/k/yulan.jsp?fgid=2H7CG8]http://w1.ttkefu.com/k/yulan.jsp?fgid=2H7CG8[/url]

相关文章

网友评论

      本文标题:andorid开发小知识

      本文链接:https://www.haomeiwen.com/subject/zekclxtx.html