intent

Android-断点续传下载

陌路散爱 提交于 2019-12-04 13:54:42
工作找完了,玩也玩完了,该好好学习了,最近我把《Java并发编程的艺术》这本书给读完了,对于并发编程以及线程池的使用还是不娴熟,我就在imooc上找到一个项目“ Android-Service系列之断点续传下载 “,这是我对这个项目在编写的时候记录。 涉及知识点 UI界面编写 数据库 Service 广播传递数据 多线程以及Handler 网络 这些应该是Android的基础,我就不累述了,到时候在代码中遇到了再进行解释。 这个项目主要的流程是: 一切的操作的开始是基于Activity的,但是我们的下载任务肯定是不能在Activity中进行的,因为假如我们的Activity切换成后台进程就有可能会被销毁(进程的优先级:前台,可见,服务,后台,空),所以我们将下载放在Service中是比较好的,但是Service和Activity一样是主线程,是不能进行数据的操作的,所以我们要利用到Thread或者是线程池,如果我们要可见下载进度的话,我们就需要通过广播的消息传递来更新UI上的进度,对于断点我们就需要实时将下载到的文件位置存储下来,所以我们利用数据库(稳定)存储进度。下载完成以后再将下载信息删除。 基础布局 这部分就不讲了,特别简单的一个布局 <?xml version="1.0" encoding="utf-8"?> < RelativeLayout xmlns: android

NFC交互实现--hce读卡器

匆匆过客 提交于 2019-12-04 13:36:46
目前 NFC 应用的大的框架上的理解: 使用 API LEVEL 19及以上, 支持的 API 有三个: android.nfc,android.nfc.cardemulator,android.nfc.tech NFC 在手机上的应用大体分为两类:读卡器和卡 android.nfc.cardemulator 接口是为 NFC 作为卡应用提供的接口,在较低版本的 API 上是没有的 android.nfc.tech , android.nfc 接口是为 NFC 作为读卡器应用提供的接口 NFC数据过滤 NFC有三种过滤器分别是ACTION_NDEF_DISCOVERED,ACTION_TECH_DISCOVERED,ACTION_TAG_DISCOVERED。 1. ACTION_NDEF_DISCOVERED 当扫描到的tag中包含有NDEF载荷且为已知类型,该intent将用来启动Activity。该intent的优先级最高,tag分发系统总是先于其他intent用该intent来启动Activity。 2. ACTION_TECH_DISCOVERED 如果manifest中没有注册处理ACTION_NDEF_DISCOVERED类型的intent,该intent将被用以启动Activity。如果tag中没有包含可以映射到MIME或者URI类型的数据

作业7

走远了吗. 提交于 2019-12-04 09:09:44
package com.example.qerw; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends ActionBarActivity { private Button button; private EditText editText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void click(View view) { button = (Button) findViewById(R.id.button3); editText = (EditText)

通过Intent调用系统功能大全

ぐ巨炮叔叔 提交于 2019-12-04 08:37:43
package mars.com; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; public class DemoActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.main); Uri uri = Uri.parse( "http://www.baidu.com" );// 指定数据 Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); // 指定action intent.setData(uri); // 设置数据 startActivity(intent); } } package mars.com; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os

Intent 跳转 Activity 用法

自古美人都是妖i 提交于 2019-12-04 06:13:10
1 一、不同应用中的 Activity 传递 2 Intent tIntent=new Intent(); 3 ComponentName tComponentName=new ComponentName("com.oradt.ecard.globalsearch", "com.oradt.ecard.globalsearch.GlobalActivity"); 4 tIntent.setComponent(tComponentName); 5 tIntent.setAction("android.intent.action.MAIN"); 6 tIntent.putExtra("id", mTimeRing.getId()); 7 mContext.startActivity(tIntent); 8 1.注解: 9 10 1.com.oradt.ecard.globalsearch 是要跳转应用的包名,即 AndroidManifest.xml 中的 package 11 12 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 13 package="com.oradt.ecard.globalsearch" 14 15 2.com.oradt.ecard.globalsearch

【Android基础】Activity的启动模式(android:launchMode)

两盒软妹~` 提交于 2019-12-04 04:31:20
在android里,有4种activity的启动模式,分别为: “standard” (默认) “singleTop” “singleTask” “singleInstance” 它们主要有如下不同: 1. 如何决定所属task “standard”和”singleTop”的activity的目标task,和收到的Intent的发送者在同一个task内,除非intent包括参数FLAG_ACTIVITY_NEW_TASK。 如果提供了FLAG_ACTIVITY_NEW_TASK参数,会启动到别的task里。 “singleTask”和”singleInstance”总是把activity作为一个task的根元素,他们不会被启动到一个其他task里。 此话描述不正确, 感谢 liuluxu1989 提出。 这篇博文写的比较简单, 也没有任何图示, 不便大家理解, 建立大家直接看Dev guide. 或者下面这篇博文: http://marshal.easymorse.com/archives/2950 2. 是否允许多个实例 “standard”和”singleTop”可以被实例化多次,并且存在于不同的task中,且一个task可以包括一个activity的多个实例; “singleTask”和”singleInstance”则限制只生成一个实例,并且是task的根元素。

Activity的4种加载模式及Intent标识

梦想与她 提交于 2019-12-04 04:30:01
Activity的生命周期已经了解了,那么Activity是怎么运作的呢? Activity栈:(Task) 每个Activity的状态是由它在Activity栈(是一个后进先出LIFO,包含所有正在运行Activity的队列)中的位置决定的。 当一个新的Activity启动时,当前的活动的Activity将会移到Activity栈的顶部。 如果用户使用后退按钮返回的话,或者前台的Activity结束,在栈上的Activity将会移上来并变为活动状态。 一个应用程序的优先级是受最高优先级的Activity影响的。当决定某个应用程序是否要终结去释放资源,Android内存管理使用栈来决定基于Activity的应用程序的优先级。 Activity的4种状态: 活动的 :当一个Activity在栈顶,它是可视的、有焦点、可接受用户输入的。Android试图尽最大可能保持它活动状态,杀死其它Activity来确保当前活动Activity有足够的资源可使用。当另外一个Activity被激活,这个将会被暂停。 暂停 :在很多情况下,你的Activity可视但是它没有焦点,换句话说它被暂停了。有可能原因是一个透明或者非全屏的Activity被激活。 当被暂停,一个Activity仍会当成活动状态,只不过是不可以接受用户输入。在极特殊的情况下

Android开机启动Activity或者Service方法

主宰稳场 提交于 2019-12-04 04:29:23
这段时间在做Android的基础开发,现在有一需求是开机启动,按照网上某些博文教程做了下,始终不成功,一开机总是提示所启动的应用程序意外终止,于是参考了Android SDK doc,终于解决问题,下面把自己的经验分享给大家。 Android开机启动Activity或者Service方法 【原理】 当Android系统完成BOOT阶段之后,就会发送一条名为 ACTION_BOOT_COMPLETED 的广播,我们便可在一个BroadcastReceiver中捕获这条广播,然后启动我们的Activity或者Service,当然要注意的是,我们的application必须具有捕获该广播的权限,下面请看具体步骤: 【步骤一】首先要有一个用于开机启动的Activity或者Service,这里以系统自己创建的最简单的Activity为例进行讲解。 package com.billhoo.study; import android.app.Activity; import android.os.Bundle; public class BootTestActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle

第七次作业

折月煮酒 提交于 2019-12-04 02:21:26
package com.example.chuangkou; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } //点按钮开启第二个窗口 public void click(View v){ Intent intent=new Intent(this,MainActivity2.class); EditText et2=(EditText)findViewById(R.id.et2); String s=et2

BroadcastReceiver—使用(III)

十年热恋 提交于 2019-12-04 01:37:01
3. 生命周期   描述了 Android 中广播的生命周期,其次它并不像 Activity 一样复杂,运行原理很简单如下图: 生命周期只有十秒左右,如果在 onReceive() 内做超过十秒内的事情,就会报错。   每次广播到来时 , 会重新创建 BroadcastReceiver 对象 , 并且调用 onReceive() 方法 , 执行完以后 , 该对象即被销毁 . 当 onReceive() 方法在 10 秒内没有执行完毕, Android 会认为该程序无响应 . 所以在BroadcastReceiver 里不能做一些比较耗时的操作 , 否侧会弹出 ANR(Application No Response) 的对话框. 怎么用好 BroadcastReceiver   如果需要完成一项比较耗时的工作 , 应该通过发送 Intent 给 Service, 由 Service 来完成 . 这里不能使用子线程来解决 , 因为 BroadcastReceiver 的生命周期很短 , 子线程可能还没有结束BroadcastReceiver 就先结束了 .BroadcastReceiver 一旦结束 , 此时 BroadcastReceiver 的   所在进程很容易在系统需要内存时被优先杀死 , 因为它属于空进程 ( 没有任何活动组件的进程 ). 如果它的宿主进程被杀死 ,