Android开发之Activity(cho1)篇

Posted 非余之渔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android开发之Activity(cho1)篇相关的知识,希望对你有一定的参考价值。

一、Activity判断网络是否连通:

       首先创建一个Andorid Project项目,然后添加一个on1类,Layout一个button控件和Textview控件。

        values有一个Color.xml文件和string.xml文件(注:Color.xml文件可以网上找)

       Color.xml文件:

                       

     string.xml文件:

                

       MainActivity.java文件:

             通过findViewById获取R资源文件中的控件,并且通过setOnClickListener方法将on1加入监听管理。

private Button btn1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn1=(Button) this.findViewById(R.id.button1);
        btn1.setOnClickListener(new on1(this));
    }

  on1.java文件:

     1、on1类实现监听接口,调用onClick方法,实现点击按钮进入该方法进行相关的操作。定义一个上下文对象Context变量和TextView变量,还有ConnextivityManager 变量(ConnectivityManager主要管理和网络连接相关的操作),定义一个接受数据的函数。 

     2、通过将上下文对象进行强转为Activity,获取R文件资源,在OnClick方法中第定义一个String变量和int变量,两个变量用于Textview显示的文本和背景颜色。

     3、通过Activity的getResources().getString(R.string.test2)方法 获取values文件下string.xml文件string标签 name属性值为test2的文本值(网络正常),通过Activity的getResources().getColor(R.color.blue)方法设置背景颜色。(注:可以通过和获取文本值一样获取Color.xml文件的颜色)。

public class on1 implements OnClickListener {

    
    private Context context;
    private TextView txt;
    private ConnectivityManager cn;
    public on1(Context u)
    {
        this.context=u;
    }
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        Activity act=(Activity)context;
        txt=(TextView) act.findViewById(R.id.textView1);
        String text;
        int col;
        
        cn = (ConnectivityManager) act.getSystemService(act.CONNECTIVITY_SERVICE);
        NetworkInfo t=cn.getActiveNetworkInfo();
        if(t!=null)
        {
            text=act.getResources().getString(R.string.test2);
            col=act.getResources().getColor(R.color.blue);
        }else
        {
            text=act.getResources().getString(R.string.test1);
            col=act.getResources().getColor(R.color.red);
        }
        txt.setText(text);
        txt.setBackgroundColor(col);
    }

     4、是否连接网络? 通过Activity的getSystemService(act.CONNECTIVITY_SERVICE)获得网络连接管理器对象,通过ConnectivityManager的getActiveNetworkInfo方法,获取网络连接管理器对象获得网络连接状态,如果没连接返回null。通过ConnectivityManager返回的对象判断是否连接网络并进行相关的操作。

    5、获取网络权限:

               点击 androidManifest.xml文件

                 

              点击Add添加

               

             Name下拉框选中选中android.permission.ACCESS_NETWORK_STATE",在创建一个Add下拉框选中android.permission.INTERNET。

              

 

                     

查看AndroidMandifest.xml文件添加了两个uses-permission标签。

       

                      

效果图:

      有网:

                   

    没网:

                   

 getSystemService知识点:

在Android后台运行着很多service,他们在系统启动是通过SystemService开启,支持系统的正常工作,也帮助我们更好的实现各种功能。
getSystemService是activity的一个方法,通过context进行调用,通过不同的服务名获得相应的服务对象,再根据获得的对象调用所需要的方法一下是一些服务的名称以及返回对象
 
                    传入的Name               |               返回的对象                  |             说明

    WINDOW_SERVICE                      WindowManager                    管理打开的窗口程序

    LAYOUT_INFLATER_SERVICE             LayoutInflater                   取得xml里定义的view

    ACTIVITY_SERVICE                    ActivityManager                  管理应用程序的系统状态

    POWER_SERVICE                       PowerManger                      电源的服务

    ALARM_SERVICE                       AlarmManager                     闹钟的服务

    NOTIFICATION_SERVICE                NotificationManager              状态栏的服务

    KEYGUARD_SERVICE                    KeyguardManager                  键盘锁的服务

   LOCATION_SERVICE                    LocationManager                  位置的服务,如GPS

   SEARCH_SERVICE                      SearchManager                    搜索的服务

   VEBRATOR_SERVICE                    Vebrator                         手机震动的服务

   CONNECTIVITY_SERVICE                Connectivity                     网络连接的服务

   WIFI_SERVICE                        WifiManager                      Wi-Fi服务

   TELEPHONY_SERVICE                   TeleponyManager                  电话服务

 

1、ActivityManager am = (ActivityManager) this   

List l = am.getRunningAppProcesses();//获取当前运行程序的信息

 

2、LayoutInflater inflater = (LayoutInflater) context
    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);获得布局管理器对象
 
convertView = inflater.inflate(R.layout.item_appoint_list_1, null);//这个应该不用多说,getView中一直用的。

以上是关于Android开发之Activity(cho1)篇的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin基础从入门到进阶系列讲解(进阶篇)Android之Activity的生命周期

Android 10 App启动分析之Activity启动篇

[android开发篇]activity组件篇

Android 音视频开发之基础篇 使用 SurfaceView绘制一张图片

Android实战开发篇 监听广播唤起Activity(活动)Dialog弹窗的方案

Android基础&进阶