摘要: 参考:Android Application生命周期学习Android中如何查看内存(上)Android OnLowMemory和OnTrimMemoryOnLowMemoryOnLowMemory是Android提供的API,在系统内存不足,所有后台程序(优先级为background的进程,不是指后台运行的进程)都被杀死时,系统会调用OnLowMemory。系统提供的回调有:Application.onLowMemory()Activity.OnLowMemory()Fragement.OnLowMemory()Service.OnLowMemory()ContentProvider.OnL 阅读全文
posted @ 2014-01-20 16:30 Sudawei 阅读(11601) 评论(1) 推荐(0) 编辑
摘要: 【转】内存不足时Android 系统如何Kill进程大家其实都或多或少知道,Android系统有自已的任务管理器,当系统内存不足时,系统需要KILL一些进程(应用),以回收一部分资源,来保证系统仍可以正常的运行,而不会崩溃,今天,就具体讲讲这个原理。进程优先级(importance hierarchy)Android 系统尽量保持进程运行的更久,但是仍有时候,需要结束掉老的进程,回收内存来保证新的,或更重要的进程运行。要决定哪些进程运行,哪些被 KILL,系统会为每个运行的进程或者组件设置其进程优先级。通常KILL的顺序是优先级最低,然后其次,等等依次这样下去。一共有五级:前台进程(Foreg 阅读全文
posted @ 2014-01-20 16:11 Sudawei 阅读(723) 评论(0) 推荐(0) 编辑
摘要: 当有一些耗费内存比较多的操作时,可以通过android:process指定一个新的进程。保证程序运行。例如:一个后台长期运行的service: 1 6 7 9 10 android:process定义activity运行所在的进程名称。一般情况下,应用的所有组件都运行在为应用创建的默认的进程中,该默认进程的名称应用包名称一致。通过定义元素的“process”属性可以为所有组件指定一个不同的默认进程。但是任意组件都可以重写默认进程,以便实现多进程操作。如果该属性指定名称以“:”开头,则一个新的专... 阅读全文
posted @ 2014-01-20 16:02 Sudawei 阅读(5817) 评论(0) 推荐(0) 编辑
摘要: 问题:有一个list,点击item时会做一些事情,然后重新加载数据,此时希望点击重新刷新后item还在原来的位置,而不是跳转到开头。实现如下:1、listview添加监听setOnScrollListener,记住滚动时的第一个可见列表项id,//记住上一次滚动时的位置信息 lv.setOnScrollListener(new OnScrollListener(){ @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItem... 阅读全文
posted @ 2014-01-13 14:45 Sudawei 阅读(2523) 评论(0) 推荐(0) 编辑
摘要: 参考 :http://blog.163.com/caoguoqiang_dlut/blog/static/10658914220114167219320/问题描述:在service中获取到数据,通过Notification传递数据给activity,对方接到的数据一直是第一次传递的数据。ps:入门教程和很坑啊,讲的不深。解决:关键:m_PendingIntent = PendingIntent.getActivity(FileTranferService.this, Setting.NoticeID, m_Intent, PendingIntent.FLAG_CANCEL_CURRENT); 阅读全文
posted @ 2014-01-08 16:15 Sudawei 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 问题:写了一个sdk给其他人用,提供一个回调函数,函数使用了handler处理消息// handler监听网络请求,完成后操作回调函数 final Handler trigerGfHandler = new Handler() { public void handleMessage(Message msg) { listener.onGeofenceTrigger(gfMatchIds); } };在使用这个sdk提供的函数时,报错:01-02 15:46:10.498: E/AndroidR... 阅读全文
posted @ 2014-01-02 16:18 Sudawei 阅读(17380) 评论(0) 推荐(0) 编辑
摘要: 需求:点页面,出现弹层,弹层包含EditText,Button等,点击Button实现提交操作;最终代码:private PopupWindow popupWindow ;private EditText gfName;private View popView;private Button addGf;protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // popView = LayoutInflater.from(getApplicationC... 阅读全文
posted @ 2013-12-25 16:26 Sudawei 阅读(681) 评论(0) 推荐(0) 编辑
摘要: 再按一次返回键退出最终完整方案:boolean isExit;@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MyApplication.getInstance().addActivity(this);}@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if... 阅读全文
posted @ 2013-12-24 12:09 Sudawei 阅读(370) 评论(0) 推荐(0) 编辑
摘要: 转:Android的常用adb命令第一部分:1. ubuntu下配置环境anroid变量:在终端执行sudo gedit /etc/profile 打开文本编辑器,在最后追加#set android environment2. 运行Eclipse,还需要配置JAVA环境变量#set java environmentJAVA_HOME=/home/loginname/jdk目录名JRE_HOME=/home/loginname/jdk目录名/jreexport PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATHexport CLASSPATH=$JAVA_HOME/l 阅读全文
posted @ 2013-12-20 17:05 Sudawei 阅读(322) 评论(0) 推荐(0) 编辑
摘要: 1、导出sqlite的db文件:使用工具DDMS,切换到DDMS,显示File Explorer窗口,找到/data/data/应用名/databases/数据库名,点击导出按钮,导出文件。2、使用Android提供的SDK包中的工具,sqlite3.exe查看数据库内容:在cmd命令行中执行命令:3、注意:导出文件应该需要root权限;在命令行输入 【adb root】获取root权限,否则不能浏览data目录文件 阅读全文
posted @ 2013-12-20 16:54 Sudawei 阅读(624) 评论(0) 推荐(0) 编辑