为了账号安全,请及时绑定邮箱和手机立即绑定

Android攻城狮的第二门课(第3季)

难度初级
时长 6小时 0分
学习人数
综合评分9.57
162人评价 查看评价
9.9 内容实用
9.5 简洁易懂
9.3 逻辑清晰
  • StartService 1. 使用方法: (1)写一个MyStartService继承自Service,重写它的各种方法onCreate()、onStartCommand()、onDestory() (2)在AndroidManifest.xml中注册这个Service (3)在主线程Activity中通过startSerice(intent)方式启动 (4)通过stopService(intent)方式停止 2. 关于StartService (1)启动方式是通过启动intent方式实现 (2)启动之后该Service和启动源没有关系,即使主线程退出了,service还会继续运行
    查看全部
    0 采集 收起 来源:Start启动

    2016-08-01

  • BroadcastReceiver发送方法
    查看全部
  • BRoadcastReceiver
    查看全部
  • Service的生命周期图
    查看全部
    0 采集 收起 来源:Servie概述

    2016-08-01

  • BroadcastReceiver——有序广播 1. 发送一个有序广播 Intent intent2 = new Intent(); intent2.putExtra("msg", "this is a ordered broadcast"); intent2.setAction("Broadcast_one"); //设置一个filter sendOrderedBroadcast(intent2, null); //发送一个有序广播 2. 有序广播可以被截断,也可以在中间被处理 利用Bundle类就可以处理广播 Bundle bundle = new Bundle(); bundle.putString("xzhang76", "Broadcast has been processed in Receiver1"); //xzhang76是对应的key,后面是value setResultExtras(bundle); 下一个接收者接收前面已经处理的广播: Bundle bundle = getResultExtras(true); String msg = bundle.getString("xzhang76"); //从对应的key中得到数据 BroadcastReceiver——异步广播 1. 就是说接收广播是异步的,可以先发送广播,再注册接收者。 sendStickyBroadcast(intent3); 动态注册一个接收者 IntentFilter intentFilter = new IntentFilter("Broadcast_Three"); //设置过滤 MyBroadcastReceiver3 receiver3 = new MyBroadcastReceiver3(); registerReceiver(receiver3, intentFilter); 这就意味着广播是粘性的。 注意:异步广播也是不能截断的。 4. 注意一点 动态注册的接收者需要在程序结束时销毁掉 unregisterReceiver(receiver3);
    查看全部
  • 发送广播: Intent intent = new Intent() intent.putExtra("msg","这是普通广播") Intent.setAction("BC_One");//确保Intent的唯一性 sendBroadcast(intent) //发送广播 接收广播: 1.继承BroadcastReceiver,实现其方法onReceiver() String s=intent.getStringExtra("msg"); System.out.println("接收到消息"+s); abortBroadcast();//截断广播的方法,普通广播无法截断 清单文件(静态注册): <receiver android:name="包名加类名"> <intent-filter android:proprity="100"> //设置广播优先级,值为-1000~1000 <action android:name="包名.类名"/> </intent-filter> </receiver> 动态注册方法: IntentFilter intentfilter=new IntentFilter("Broadcast_one");//设置过滤 MyBroadcastReceiver2 receiver2 = new MyBroadcastReceiver2(); registerReceiver(receiver2, intentFilter); 注意: 1)动态注册的BroadcastReceiver优先级要比静态注册的高 2)动态注册有个弊端:如果当前java的程序结束了,动态注册的接收者将不再能收到广播。所以类似于短信拦截的BroadcastReceiver不能用动态注册。
    查看全部
  • 前两种广播的介绍
    查看全部
  • SharedPreferences---键值对的形式存储数据
    查看全部
  • MODE_PRIVATE -为默认操作模式,代表该文件时私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文的内容 MODE_APPEND -模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件 MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE -用来控制其他应用是否由权限读写该文件 MODE_WORLD_READABLE -标识当前文件可以被其他应用读取 MODE_WORLD_WRITEABLE -标识当前文件可以被其他应用写入 File file=this.getFilesDir();----这个目录是当前应用程序默认的数据储存目录 File file1=this.getCacheDir();----这个目录是当前应用程序默认的缓存文件的存放位置,把一些不是非常重要的文件在此处创建,使用,如果手机的内存不足时,系统会自动去删除APP的cache目录数据 File file2=this.getDir("imooc",MODE_PRIVATE);----这个目录是当前应用程序默认目录下的自定义目录 /data/data/<包名>/app_imooc File file3=this.getExternalFilesDir(Type);----可以得到外部的存储位置 该位置的数据跟内置的使用时一样的,如果APP卸载了 这里面的数据也会自动清除掉 File file4=this.getExternalCacheDir();----如果开发者不遵守这样的规则,不把数据放入data/data/<包名>或者/mnt/sdcard/Android/data/<包名> 卸载之后数据将不会自动清除掉 将会造成所谓的数据垃圾
    查看全部
    0 采集 收起 来源:File类方法介绍

    2018-03-22

  • 数据存储目录
    查看全部
    0 采集 收起 来源:File类方法介绍

    2016-07-31

  • 一,新建一个项目 二,每个程序都有自己的数据库 默认情况下是各自互相不干扰 三,创建一个数据库 并且打开 1 使用openOrCreateDatabase建一个数据库(会创建一个文件夹) 2 三个参数name:名字, 后续用.db可以用第三方工具打开 3 mode :权限 4 factory:无介绍 四,用SQL创建一张表 db.execSQL("create table if not exists usertb (_id integer primary key autoincrement,name text not null,age integer not null, sex text not null)"); 创建数据: db.execSQL("insert into usertb(name,sex,age) values('张三','女','18')"); 五,使用db.rawQuery(sql,selectionArgs) sql:sql的语句 selectionArgs:查询条件 ,null查询全部数据 六,Cursor: 查询结果赋值给Cursor Cursor c = db.rawQuery("select * from usertb",null); 创建if语句 里面嵌套while循环 21:00 while循环外 用c.close();作为游标释放 if循环外 用db.close(); 作为数据库释放
    查看全部
  • 一、各種申明: EditText etUserName,etUserPass; CheckBox chk; SharedPreferences pref; Editor edtior; etUserName = (EditText) findViewById(R.id.etuserName); etUserPass = (EditText) findViewById(R.id.etuserpass); chk = (CheckBox) findViewById(R.id.chkSaveName); 二:為登錄、取消按鈕添加屬性:(添加點擊事件的另一個方法) android:onClick="doClick" public void doClick(View v){ switch (v.getId()) { case R.id.btnLogin: String name = etUserName.getText().toString().trim();//去掉收尾的空格 String pass = etUserPass.getText().toString().trim(); if ("admin".equals(name)&&"123456".equals(pass)) { if (chk.isChecked()) { edtior.putString("userName", name); edtior.commit(); }else { edtior.remove("userName"); edtior.commit(); } Toast.makeText(MainActivity.this, "登陆成功", Toast.LENGTH_LONG).show(); }else { Toast.makeText(MainActivity.this, "禁止登陆", Toast.LENGTH_LONG).show(); } break; default: break; } }
    查看全部
  • 各种系统服务传入的name和返回对象。比如 网络连接 ConnectivityManager mManager=MainActivity.this.getSystemService(COMMECITVITY_SERVICE);<br> 然后再利用mManager的方法判断网络是否连接等.大多数的系统服务都需要加权限!
    查看全部
  • SharedPreferences
    查看全部
  • 设置uri的返回值
    查看全部

举报

0/150
提交
取消
课程须知
本课程是Android开发课程的中后期部分,学习之前要求对一些知识点有一定的了解: 1、已经掌握了Java基础 2、已经熟悉或者了解Android中的监听事件原理 3、已经熟悉或者了解一种以上的数据库,并掌握基本的SQL语句
老师告诉你能学到什么?
1、初步掌握Android手势识别的原理以及实际使用 2、初步掌握Android的数据存储方式 3、深度了解Android中的组件 4、熟悉了解Android常用的系统服务并对服务的使用有新的认识

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!