Skip to content

Instantly share code, notes, and snippets.

View dearsq's full-sized avatar

Younix dearsq

View GitHub Profile
@dearsq
dearsq / UsageOfFragment1.md
Last active August 17, 2018 09:27
[控件_Fragment] 碎片用法 #Android

Demo of Fragment

    protected void onCreate(Bundle savedInstanceState) {
        ...
        // 1. 创建待添加 fragment 实例
        replaceFragment(fragment1);
        ...
    }
@dearsq
dearsq / 广播_动态注册.md
Last active August 17, 2018 09:27
[组件_BroadcastReceiver] 广播用法 #Android

MainActivity.java

    
    private IntentFilter intentFilter;
    private NetworkChangeReceiver networkChangeReceiver; // 内部类
    
    onCreate {
        intentFilter = new IntentFilter();
        // 添加 Action
        intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE"); 
@dearsq
dearsq / AlertDialog_警告对话框.md
Last active August 17, 2018 09:27
[控件_AlertDialog] 警告对话框 #Android
            AlertDialog.Builder builder = new AlertDialog.Builder(context);
            builder.setTitle("Warning");
            builder.setMessage("You are forced to be offline. Please try to login again.");
            builder.setCancelable(false); // 设置为不可取消
            builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    ActivityCollector.finishAll(); // 销毁所有的活动
 Intent intent = new Intent(context , LoginActivity.class);
@dearsq
dearsq / 数据持久化_文件存储.md
Created July 31, 2018 08:08
[数据持久化_文件存储] 文件存储 #Android

    /**
     * 文件名 为 data
     * @param inputText
     */
    private void save(String inputText) {
        FileOutputStream out = null;
        BufferedWriter writer = null;
        try {
@dearsq
dearsq / 数据持久化_SharedPreferences.md
Last active July 31, 2018 13:16
[数据持久化_SharedPreferences] SharedPreferences #Android

简介

通过键值对的方式进行存储. 保存为 xml 文件 value - key

存储

  1. 获取 SharedPreferences 对象 SharedPreferences.Editor editor = getSharedPreferences("data", MODE_PRIVATE).edit();
  2. editor.putString("name", "Tom");
  3. editor.apply();
@dearsq
dearsq / 数据持久化_LitePal操作数据库.md
Last active August 10, 2018 02:14
[数据持久化_数据库] SQLite LitePal 数据库存储 #Android

基本概念

LitePal 是开源的 Android 数据库框架, 采用了 对象关系映射 ORM 模式 . 封装了常用数据库功能

ORM(对象关系映射) 指的是 面向对象语言 和 关系型数据库 之间建立一种映射关系.

使用方法

配置

@dearsq
dearsq / 跨程序数据共享_ContentProvider.md
Last active July 13, 2022 15:08
[组件_ContentProvider] 跨程序数据共享 #Android

基本概念

用法两种:

  1. 使用现有的ContentProvider来读取和操作相应程序中的数据
  2. 创建自己的内容提供器给我们的程序的数据提供外部访问接口

ContentResolver 使用方法

ContentResolver resolver = Context.getContentResolver(); resolver.insert //增 resolver.delete //删

@dearsq
dearsq / 运行时权限.md
Last active August 17, 2018 09:28
[SOP_动态权限] #Android

在程序运行的过程中由用户去授权执行某些可能是危险的的操作.

实现步骤

  1. 检查权限 ContextCompat.checkSelfPermission 参数 1 Context 参数 2 具体的权限名字
ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CALL_PHONE)
@dearsq
dearsq / Notification.md
Last active August 13, 2018 08:26
[通知_Notification] #Android
  1. 在 Activity 中创建
  2. 在 BoardCast 中创建
  3. 在 Service 中创建

使用

  1. 管理 Notification
NotificationManager manager = (NotificationManager) Context.getSystemService(Context.NOTIFICATION_SERVICE);
@dearsq
dearsq / MediaPlayer.md
Last active August 17, 2018 02:04
[媒体_MediaPlayer] #Android

常用控制方法

Android 通过控制播放器的状态的方式来控制媒体文件的播放,其中:

setDataSource() 设置要播放的音频文件位置 prepare()和 prepareAsync() 完成准备工作 提供了同步和异步两种方式设置播放器进入prepare状态, 需要注意的是,如果MediaPlayer实例是由create方法创建的,那么第一次启动播放前不需要再调用prepare()了,因为create方法里已经调用过了。 start()是真正启动文件播放的方法, pause() 暂停播放 stop() 停止播放