总复习

知识点目录:

零:常用的知识:

1.常用的权限:

联网的权限:<uses-permission android:name="android.permission.INTERNET"/>
写SD卡权限:<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
读SD卡权限:<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
读取联系人的权限:<uses-permission android:name="android.permission.READ_CONTACTS"/>
读取短信的权限: <uses-permission android:name="android.permission.READ_SMS"></uses-permission>

2.常用的依赖:

(1)EventBus: implementation 'org.greenrobot:eventbus:3.1.1'
otto:implementation 'com.squareup:otto:1.3.8'
(2)gson: implementation'com.google.code.gson:gson:2.8.2'
(3)picasso:implementation'com.squareup.picasso:picasso:2.5.2'
(4)glide:implementation 'com.github.bumptech.glide:glide:3.7.0'
(5)design -- TabLayout :glide:implementation 'com.android.support:design:25.2.0'

3.常用的系统内容提供者Uri:

1.获取音频: (1)uri:MediaStore.Audio.Media.EXTERNAL_CONTENT_URI (2)字段:TITLE:歌名 ARTIST 歌手 DURATION 总时长 DATA 地址
String[] strs= new String[]{MediaStore.Audio.Media.TITLE,MediaStore.Audio.Media.ARTIST,MediaStore.Audio.Media.DURATION,MediaStore.Audio.Media.DATA};
2.获取视频: (1)uri:MediaStore.Video.Media.EXTERNAL_CONTENT_URI (2)字段:TITLE:歌名 ARTIST 歌手 DURATION 总时长 DATA 地址
String[] strs= new String[]{MediaStore.Video.Media.TITLE,MediaStore.Video.Media.ARTIST,MediaStore.Video.Media.DURATION,MediaStore.Video.Media.DATA};
3.获取图库: (1)uri:MediaStore.Images.Media.EXTERNAL_CONTENT_URI (2)字段:
MediaStore.Images.Media.TITLE;图片名称
MediaStore.Images.Media.SIZE;大小
MediaStore.Images.Media.DATA;地址
4.获取联系人: (1)uri:ContactsContract.CommonDataKinds.Phone.CONTENT_URI (2)字段:Phone.DISPLAY_NAME:姓名 NUMBER:电话 String[] strs= new
String[]{ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,ContactsContract.CommonDataKinds.Phone.NUMBER};
5.获取短信: (1)uriTelephony.Sms.CONTENT_URI (2)字段:ADDRESS 地址 BODY 内容 String[] strs= new
String[]{Telephony.Sms.ADDRESS,Telephony.Sms.BODY};
备注:1 2 3 读sd卡的权限 4 读联系人的权限 5 读短信的权限

一.对话框:普通对话框和自定义对话框(****)

https://blog.csdn.net/qq_34178710/article/details/84991133

二.菜单:系统菜单和上下文菜单

https://blog.csdn.net/qq_34178710/article/details/84992873

三.弹出窗体:自定义窗体(****)

https://blog.csdn.net/qq_34178710/article/details/84993160

四.通知:普通通知和自定义通知(****)

https://blog.csdn.net/qq_34178710/article/details/84997319

五.sp存储:记住密码功能+向导页第二次打开不走向导页(****)

https://blog.csdn.net/qq_34178710/article/details/85005663

记住密码+自动登录:

https://blog.csdn.net/qq_34178710/article/details/85099468

六.SD卡操作:读写SD卡中的图片和txt文档(****)

https://blog.csdn.net/qq_34178710/article/details/85091610

七.三级缓存:内存—SD卡----网络

https://blog.csdn.net/qq_34178710/article/details/85063497

八.二次采样:尺寸压缩

https://blog.csdn.net/qq_34178710/article/details/85063500

九.数据库:增删改查,查询出来的数据展现在ListView中(****)

十.内容提供者:获得手机联系人和短信

https://blog.csdn.net/qq_34178710/article/details/85088841

十一.广播:无序普通广播(****)

1.Fragment之间发送广播

(1)Fragment1.java代码:发送方

public class Fragment1 extends Fragment {
    private Button send_bt;
    public Fragment1() {
    }
    @Override
    public View onCreateView(final LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view=inflater.inflate(R.layout.fragment_fragment1, container, false);
        send_bt=view.findViewById(R.id.send_bt);
        //点击按钮发送广播
        send_bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent= new Intent();
                intent.setAction("com.bawei.1609A");
                Bundle bundle=new Bundle();
                bundle.putString("傻子","东鼎航");
                bundle.putString("二傻子","陈燕琪");
                intent.putExtras(bundle);
                getActivity().sendBroadcast(intent);
            }
        });
        return view;
    }
}

(2)Fragment2.java代码:接受方
onCreate():注册广播
onDestory():解除注册
内部类:自定义广播接受者

public class Fragment2 extends Fragment {

    private MyRecevier myRecevier;

    public Fragment2() {

    }
    //1.注册广播
    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        IntentFilter intentFilter= new IntentFilter();
        intentFilter.addAction("com.bawei.1609A");
        myRecevier=new MyRecevier();
        getActivity().registerReceiver(myRecevier,intentFilter);
    }
    //2.解除注册
    @Override
    public void onDestroy() {
        super.onDestroy();
        getActivity().unregisterReceiver(myRecevier);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_fragment1, container, false);
    }
    //3.广播接受者类
    class  MyRecevier extends BroadcastReceiver{

        @Override
        public void onReceive(Context context, Intent intent) {
            String action=intent.getAction();
            if("com.bawei.1609A".equals(action)){
                String str=intent.getExtras().getString("傻子","");
                String str2=intent.getExtras().getString("二傻子","");
                //可以展现在TextView中
            }
        }
    }

}

2.服务和Fragment之间发送广播:使用的是IntentService网络下载json串,发送广播将json串返回给Fragment

(1)MyIntentService.java代码:发送方

public class MyIntentService extends IntentService {
    //必须提供无参构造
    public MyIntentService() {
        super("MyIntentService");
    }
    public MyIntentService(String name) {
        super(name);
    }
    @Override
    protected void onHandleIntent(@Nullable Intent intent) {
        //执行网络下载,此处省略
        String  json="sdfgdfhjkghfgdfgfgjkhg";
        //发送广播
        Intent intent1=new Intent();
        intent1.setAction("com.bawei.1609A");
        Bundle bundle= new Bundle();
        bundle.putString("json",json);
        intent1.putExtras(bundle);
        sendBroadcast(intent1);
    }
}

(2)注册服务:

  <service android:name=".service2.MyIntentService"></service>

(3)Fragment3.java代码:广播接受方+服务开启方
onCreate():注册广播+开启服务
onDestory():解除注册(IntentService不用停止服务)

public class Fragment5 extends Fragment {
  private MyReceiver myReceiver;


  public Fragment5() {

  }

  @Override
  public void onCreate(@Nullable Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      IntentFilter intentFilter= new IntentFilter();
      intentFilter.addAction("com.bawei.1609A");
      myReceiver=new MyReceiver();
      getActivity().registerReceiver(myReceiver,intentFilter);

      //开启IntentService下载jsob
      Intent intent= new Intent(getActivity(),MyIntentService.class);
      getActivity().startService(intent);
  }
  @Override
  public void onDestroy() {
      super.onDestroy();
      getActivity().unregisterReceiver(myReceiver);
  }

  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container,
                           Bundle savedInstanceState) {

      return inflater.inflate(R.layout.fragment_fragment5, container, false);
  }
  class MyReceiver extends BroadcastReceiver{

      @Override
      public void onReceive(Context context, Intent intent) {
          //.......json接受展现在ListView中
      }
  }

}

十二.Fragment+ViewPager(****)

1.Fragment切换(hide和show)

https://blog.csdn.net/qq_34178710/article/details/85059375

2.ViewPager+4个ImageView+PagerAdapter实现向导页

https://blog.csdn.net/qq_34178710/article/details/85060789

3.ViewPager+4个Fragment+FragmentPagerAdapter实现微信底部导航

https://blog.csdn.net/qq_34178710/article/details/85061025

4.ViewPager+4个Fragment+FragmentPagerAdapter+tabLayout实现标题切换

https://blog.csdn.net/qq_34178710/article/details/85061427

3+4 实现2个ViewPager嵌套

十三.Service服务(****)

1.startService直接开启服务

2.bindService绑定服务调用服务提供的方法

音乐播放器案例:
https://blog.csdn.net/qq_34178710/article/details/85062389

3.IntentService执行网络下载异步任务

https://blog.csdn.net/qq_34178710/article/details/85055604

十四.PullToRefreshListView上拉加载,下拉刷新(****)

https://blog.csdn.net/qq_34178710/article/details/85055756

猜你喜欢

转载自blog.csdn.net/qq_34178710/article/details/85063244