要求:软件启动后,显示手机的网络状态情况,当程序切换到后台时,后台要求使用Service检查网络状态,并且每隔 20 - 30 s 发送通知消息,当点击通知消息,切换软件到前台。在前台时不进行消息提醒。
// 程序分析:
{ 1.手机网络状态
功能点: { 2.程序运行在前台还是后台
{ 3.后台启动Service检查网络状态
{ 4.Notification消息通知类
两个工具类方法:
/** * 判断当前应用程序处于前台还是后台 */ public static boolean isApplicationBroughtToBackground(final Context context) { ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningTaskInfo> tasks = am.getRunningTasks(1); if (!tasks.isEmpty()) { ComponentName topActivity = tasks.get(0).topActivity; if (!topActivity.getPackageName().equals(context.getPackageName())) { return true; } } return false; }
<uses-permission android:name="android.permission.GET_TASKS" />
/** * 检测当的网络(WLAN、3G/2G)状态 * * @param context Context * @return true 表示网络可用 */ public static int getNetType(Context context) { ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); if (connectivity != null) { NetworkInfo info = connectivity.getActiveNetworkInfo(); if (info != null && info.isConnected()) { //