资讯专栏INFORMATION COLUMN

Android常用Manager

jackwang / 979人阅读

摘要:常用与系统中正在运行的所有活动进行交互。开启的事务的任务都完成后要提交事务。常用的方法返回在设备上安装的所有应用程序包的列表。常用方法返回电话状态。表示闹钟在睡眠状态下会唤醒系统并执行提示功能,该状态下闹钟使用绝对时间。

Android常用Manager

1. ActivityManager:与系统中正在运行的所有活动进行交互。

获取ActivityManager对象的方法是在拥有context的环境下使用下面的方法。
ActivityManager activityManager= (ActivityManager) getSystemService(ACTIVITY_SERVICE);
ActivityManager常用的方法:

getRunningAppProcesses():获取系统中正在运行的所有的进程的信息。

getRunningServices:获取系统中正在运行的所有的服务的信息。

getMemoryInfo():获取系统内存信息。

getProcessMemoryInfo:获取某个或某几个进程占用的内存信息。

getDeviceConfigurationInfo():获取设备的配置属性。

2. FragmentManager:在Activity中与Fragment进行交互的接口

获取FragmentManager对象的方法是在Activity中使用下面的方法。
FragmentManager fragmentManager=getSupportFragmentManager();
AlarmManager常用方法:

getFragments():获取FragmentManager中所有的Fragment。

findFragmentById():通过id找到对应的Fragment。

beginTransaction():开启FragmentManager的事务。

FragmentManager只能直接对Fragment进行查询操作,不能直接进行增加,删除,更新操作,要进行这些操作必须在FragmentManager开启的事务中进行。开启的事务的任务都完成后要提交事务。

fragmentManager.beginTransaction().replace(R.id.fragment,fragment).commit();
3. PackageManager:检索当前安装在设备上的应用程序包相关的各种信息

获取PackageManager对象的方法是在在拥有context的环境下使用下面的方法。
PackageManager packageManager=getPackageManager();
PackageManager常用的方法:

getInstalledApplications():返回在设备上安装的所有应用程序包的列表。

getInstalledPackages():返回在设备上安装的所有包的列表。

getActivityInfo():获取对应组件名的Activity的信息。

注意其实PackageManager是一个抽象类。

4. DownloadManager:下载管理器是一个系统服务,处理长时间运行的HTTP下载

DownloadManager的基本使用方法:

    /**
     * DownloadManager的基本使用
     */
    public void downloadManager(){
        //获取系统服务的DownloadManager
        downloadManager= (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
        //创建一个DownloadManager的请求
        DownloadManager.Request request=new DownloadManager.Request(Uri.parse("http://i.imgur.com/iXgyWbG.png"));
        //设置请求允许的联网方式:移动网络与wifi都可以
        request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_MOBILE| DownloadManager.Request.NETWORK_WIFI);
        //禁止发出通知,既后台下载
        //request.setShowRunningNotification(false);该方法被setNotificationVisibility取代了
        request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_HIDDEN);
        //显示下载界面
        request.setVisibleInDownloadsUi(true);
        //设置下载后文件存放的位置,存放在/sdcard/Android/data/<包名>/files/Pictures目录下面
        request.setDestinationInExternalFilesDir(this, Environment.DIRECTORY_PICTURES, "iXgyWbG.png");
        //将下载请求放入队列
        downloadManager.enqueue(request);
    }  
5. ConnectivityManager:关于网络连接状态的查询的类

ConnectivityManager的主要作用是:

监视网络连接(Wi-Fi、GPRS、UMTS、等)

当网络连通性的变化发送广播意图

当连接的网络丢失,会自动连接别的网络

提供一个允许应用程序查询可用网络的粗粒度或细粒度的应用程序接口

提供一个允许应用程序请求和选择网络的应用程序的接口

ConnectivityManager的基本使用方法:

    /** 
     * 检测当的网络(WLAN、3G/2G)状态 
     * @param context Context 
     * @return true 表示至少有一种网络处于连接状态 
     */  
    public static boolean isNetworkAvailable(Context context) {  
        ConnectivityManager connectivity = (ConnectivityManager) context  
                .getSystemService(Context.CONNECTIVITY_SERVICE);  
        if (connectivity != null) {  
            NetworkInfo info = connectivity.getActiveNetworkInfo();  
            if (info != null && info.isConnected())   
            {  
                // 当前网络是连接的  
                if (info.getState() == NetworkInfo.State.CONNECTED)   
                {  
                    return true;  
                }  
            }  
        }  
        return false;  
    }  
6. WindowManager:应用程序使用的界面和窗口管理器

WindowManager是一个接口,基本使用方法如下:

        WindowManager windowManager=getWindowManager();
        //向windowManager中添加视图
        windowManager.addView(view);
        //删除windowManager中的视图
        windowManager.removeView(view);
7. NotificationManager:通知用户发生的事件

NotificationManager的基本使用方法:

 NotificationManager notificationManager= (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        PendingIntent intent=PendingIntent.getActivity(this,0,new Intent(MainActivity.this,MainActivity.class),0);
        Notification notification=new NotificationCompat.Builder(this)
                .setTicker("有新通知了")
                .setLargeIcon(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher))
                .setSmallIcon(R.mipmap.ic_launcher)
                .setContentTitle("通知标题")
                .setContentText("通知内容")
                .setWhen(0)
                .setContentIntent(intent)
                .build();
        notificationManager.notify(0,notification);
8. TelephonyManager:提供访问设备上的电话服务的信息

获取TelephonyManager对象的方法是在拥有context的环境下使用下面的方法。
TelephonyManager telephonyManager= (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
TelephonyManager常用方法:

getCallState():返回电话状态。

TelephonyManager.CALL_STATE_IDLE 无任何状态时

TelephonyManager.CALL_STATE_OFFHOOK 接起电话时

TelephonyManager.CALL_STATE_RINGING 电话进来时

getCellLocation():获取当前电话的位置

getDataActivity():获取数据活动状态

TelephonyManager.DATA_ACTIVITY_IN 活动,正在接受数据

TelephonyManager.DATA_ACTIVITY_OUT 活动,正在发送数据

TelephonyManager.DATA_ACTIVITY_INOUT 活动,正在接受和发送数据

TelephonyManager.DATA_ACTIVITY_NONE 活动,但无数据发送和接受

getDeviceId():返回设备id(当前移动终端的唯一标识)

getLine1Number():返回手机号码

9. LocationManager:提供了系统位置服务的访问

获取LocationManager对象的方法是在拥有context的环境下使用下面的方法。
LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
LocationManager常用方法:

getAllProviders():获取所有能提供位置服务的Provider

getLastKnownLocation():获取上次开启位置服务记录的位置

requestLocationUpdates():注册位置更新的监听者

10. AlarmManager:提供系统报警服务的访问

获取AlarmManager对象的方法是在拥有context的环境下使用下面的方法。
AlarmManager alarmManager= (AlarmManager) getSystemService(ALARM_SERVICE);
AlarmManager常用方法:

setTime(long millis):设置系统时钟时间。

setTimeZone(String timeZone):设置系统时钟时区。

setAlarmClock(AlarmClockInfo info, PendingIntent operation):设置一个警报来代表闹钟。

set(int type, long triggerAtMillis, PendingIntent operation):设置一次性闹钟,第一个参数表示闹钟类型,第二个参数表示闹钟执行时间,第三个参数表示闹钟响应动作。

setRepeating(int type, long triggerAtMillis,long intervalMillis, PendingIntent operation):设置重复闹钟,第一个参数表示闹钟类型,第二个参数表示闹钟首次执行时间,第三个参数表示闹钟两次执行的间隔时间,第三个参数表示闹钟响应动作。

setInexactRepeating(int type, long triggerAtMillis,long intervalMillis, PendingIntent operation):设置重复闹钟,与setRepeating方法类似,区别是setRepeating闹钟两次执行的间隔时间固定,而setInexactRepeating闹钟两次执行的间隔时间不固定。

上述方法中的type参数有五种值:

AlarmManager.ELAPSED_REALTIME:表示闹钟在手机睡眠状态下不可用,该状态下闹钟使用相对时间(相对于系统启动开始)。

AlarmManager.ELAPSED_REALTIME_WAKEUP:表示闹钟在睡眠状态下会唤醒系统并执行提示功能,该状态下闹钟也使用相对时间。

AlarmManager.RTC:表示闹钟在睡眠状态下不可用,该状态下闹钟使用绝对时间,即当前系统时间。

AlarmManager.RTC_WAKEUP:表示闹钟在睡眠状态下会唤醒系统并执行提示功能,该状态下闹钟使用绝对时间。

AlarmManager.POWER_OFF_WAKEUP:表示闹钟在手机关机状态下也能正常进行提示功能,所以是5个状态中用的最多的状态之一,该状态下闹钟也是用绝对时间。

文章链接:https://segmentfault.com/a/1190000005112313

欢迎关注我的微信公众号:Android技术漫谈

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/12789.html

相关文章

  • 史上最详细的Android Studio系列教程二--基本设置与运行

    摘要:在下拉菜单中选择选择提示或者是设备。创建模拟器建议在创建模拟器前把中的都更新到最新。 原文链接:http://stormzhang.com/devtools/2014/11/28/android-studio-tutorial2/ 上面一篇博客,介绍了Studio的优点与1.0 RC的安装与上手体验,没想到google的更新速度这么快,已经出了RC 2版本,主要是修复一些bu...

    wemallshop 评论0 收藏0
  • Android」系统架构概述

    摘要:目录系统架构类库四大组件系统架构从架构图看出架构分为五个部分,由下往上依次为基于提供核心系统服务,例如安全内存管理进程管理网络堆栈驱动模型。这一机制允许用户替换组件。使用可以让应用程序对外部事件做出响应。目录: 1、Android系统架构 2、Android类库 3、四大组件   --------------------------------------------------------...

    shery 评论0 收藏0
  • 安卓开发环境配置之Windows+ADT+eclipse

    摘要:开发的软件通常会使用上述系统变量,因此不建议使用其他命名。运行,,选中离线安装包即可。安装调试环境配置虚拟设备或安装第三方模拟器。不创建该环境变量时,默认存储在用户文档目录下的文件夹中。可以利用命令或图形界面程序创建。安卓环境搭建之Windows+ADT+eclipse 要点: 1.安装JDK 2.安装Android SDK 3.安装eclipse 4.安装ADT 5.安装调试环境 正文: ...

    icyfire 评论0 收藏0
  • Broadcast Receiver 介绍

    摘要:中使用了非常多的来广播系统事件,例如网络变化电池电量来电。动作字符串可以用来标识要广播的事件,需要是唯一的。在中注册接收器,在中注销它。在运行时管理想要减少应用程序的开销,最好禁用一些系统常用事件。 广播 接收、效率很低、只有先注册了广播才能发送广播。 使用 Intent 来广播一个事件,让你和第三方开发人员对事件作出反应,可以通过监听 Broadcast Intent 来对设备状态...

    Hanks10100 评论0 收藏0
  • 02.Android之IPC机制问题

    摘要:中为何新增来作为主要的方式运行机制是怎样的机制有什么优势运行机制是怎样的基于通信模式,除了端和端,还有两角色一起合作完成进程间通信功能。 目录介绍 2.0.0.1 什么是Binder?为什么要使用Binder?Binder中是如何进行线程管理的?总结binder讲的是什么? 2.0.0.2 Android中进程和线程的关系?什么是IPC?为何需要进行IPC?多进程通信可能会出现什么问...

    Donne 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<