笔记
1.监听网络状态
使用BroadcastReceiver进行监听
记得添加权限: <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> public class NetState extends BroadcastReceiver { @Override public void onReceive(Context context, Intent arg1) { ConnectivityManager manager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo gprs = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); NetworkInfo wf = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); if(!gprs.isConnected() && !wf.isConnected()) { //未联网 } else{ //已联网 } } } //文件清单中静态注册 <receiver android:name=".MyReceiver"> <intent-filter> <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/> </intent-filter> </receiver> //动态注册---->>服务中注册广播接收者
2.判断应用是否处于前台
代码
记得添加权限: <uses-permission android:name ="android.permission.GET_TASKS" /> public static boolean isRunningForeground(Context context) { String packageName=context.getPackageName(); String topActivityClassName=getTopActivityName(context); if (packageName!=null&&topActivityClassName!=null&&topActivityClassName.startsWith(packageName)) { return true; } else { return false; } } /**获取栈顶的Activity的名称*/ public static String getTopActivityName(Context context){ String topActivityClassName=null; ActivityManager activityManager = (ActivityManager)(context.getSystemService(android.content.Context.ACTIVITY_SERVICE )) ; //通过Activity管理器得到当前的任务栈信息; List<ActivityManager.RunningTaskInfo> runningTaskInfos = activityManager.getRunningTasks(1) ; if(runningTaskInfos != null){//从任务栈中获得栈顶的Activity的名称。 ComponentName componentName=runningTaskInfos.get(0).topActivity; topActivityClassName=componentName.getClassName(); } return topActivityClassName; }
3.代码控制ListView滚动底部
listView.setSelection(ListView.FOCUS_DOWN);