intent

Android生命周期

若如初见. 提交于 2020-01-24 05:17:37
在 Android 中,多数情况下每个程序都是在各自独立的 Linux 进程中运行的。当一个程序或其某些部分被请求时,它的进程就“出生”了;当这个程序没有必要再运行下去且系统需要回收这个进程的内存用于其他程序时,这个 进程就“死亡”了。可以看出,Android 程序的生命周期是由系统控制而非程序自身直接控制。这和我们编写桌面应用程序时的思维有一些不同,一个桌面应用程序的进程也是在其他进程或用户请求时被创 建,但是往往是在程序自身收到关闭请求后执行一个特定的动作(比如从 main 函数中 return)而导致进程结束的。要想做好某种类型的程序或者某种平台下的程序的开发,最关键的就是要弄清楚这种类型的程序或整个平台下的程序的一般工作 模式并熟记在心。在 Android 中,程序的生命周期控制就是属于这个范畴——我的个人理解:) 在 Android 系统中,当某个 activity调用 startActivity(myIntent) 时,系统会在所有已经安装的程序中寻找其 intent filter 和 myIntent 最匹配的一个 activity,启动这个进程,并把这个 intent 通知给这个 activity。这就是一个程序的“生”。比如我们在 Home application 中选择 “Web browser”,系统会根据这个 intent 找到并启动 Web browser

Android 四大组件之Service

北慕城南 提交于 2020-01-24 05:17:19
四大组件之Service 虽然项目中Service用的不算太多 但毕竟作为Android四大组件之一 有必要一探究竟 Service onBind //返回IBinder 通信 onCreate //第一次创建回调 onDestroy //关闭之前回调 onStartCommand //早期版本onStart startService启动时回调 onUnbind //Service上绑定都断开时回调 运行Service两种方式 startService //访问者退出 Service仍然允许 bindService //访问者退出 Service终止 生命周期 startService //onCreate onStartCommand onDestroy bindService //onCreate onBind onUnbind onDestroy 特殊的生命周期 startService启动 bindService绑定 unbindService解除绑定 bindService再次绑定 //onCreate onStartCommand onBind onUnbind onRebind ServiceConnection 监听访问者与Service之间连接情况 IntentService //可执行耗时任务 Service与他所在应用属于同一进程 不可执行耗时任务 Demo1

Android四大组件之Service

不羁岁月 提交于 2020-01-24 05:06:30
在 Android 四大组件之中,除了 Activity 之外,最常用的就是 Service 了。先来看一下官方对 Service 的介绍 : Service是一个可以在后台执行需要长时间运行的操作的应用组件,它不提供用户界面。其它组件可以启动一个Service ,之后即使用户切换到别的应用里,这个Service 也将继续在后台运行。此外,一个组件可以与一个Service绑定来与之交互,甚至可以进行进程间通信。服务可以在后台执行很多任务,比如处理网络事务,播放音乐,文件读写或者与一个内容提供者交互等等。 由此可见,Service 的用途还是十分广泛的,我们在开发中经常会用到 Service,所以应该对 Service 有一定的了解。 Service 有一个非常需要注意的地方就是它其实是 运行在主线程中的 ,如果是刚了解 Service 的人,很容易会误以为 Service 是另开一个新线程运行的。所以我们一定要注意,不要在 Service 中执行一些耗时操作,从而导致线程阻塞。 想要了解Service,那么就要先了解Service的生命周期,幸运的是,Service的生命周期比起Activity要简单的多。如下 : 上图展示了 Service 在两种形式下的生命周期。下面说明 Service 的两种形式 : 未绑定形式 Service: 该形式的 Service 是通过

android service 组件

拟墨画扇 提交于 2020-01-24 05:03:02
Service 概念及用途 : Android 中的服务,它与 Activity 不同,它是不能与用户交互的,不能自己启动的,运行在后台的程序,如果我们退出应用时, Service 进程并没有结束,它仍然在后台运行,那 我们什么时候会用到 Service 呢?比如我们播放音乐的时候,有可能想边听音乐边干些其他事情,当我们退出播放音乐的应用,如果不用 Service ,我 们就听不到歌了,所以这时候就得用到 Service 了,又比如当我们一个应用的数据是通过网络获取的,不同时间(一段时间)的数据是不同的这时候我们可以 用 Service 在后台定时更新,而不用每打开应用的时候在去获取。 Service 生命周期 : Android Service 的生命周期并不像 Activity 那么复杂,它只继承了 onCreate(),onStart(),onDestroy() 三个方法,当我们第一次启动 Service 时,先后调用了 onCreate(),onStart() 这两个方法,当停止 Service 时,则执行 onDestroy() 方法,这里需要注意的是,如果 Service 已经启动了,当我们再次启动 Service 时,不会在执行 onCreate() 方法,而是直接执行 onStart() 方法,具体的可以看下面的实例。 Service 与 Activity 通信 :

Android Studio 源码分析

与世无争的帅哥 提交于 2020-01-24 02:36:28
android实现按钮跳转到指定网页 res/layout: <Button android:text="Button" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/button6"/>app/java/MainActivity.java package com.ouyang.android.myapplication;import android.content.Intent;import android.net.Uri;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import java.net.URL;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R

3.在Activity之间传递参数

自闭症网瘾萝莉.ら 提交于 2020-01-23 20:55:40
传递简单数据 findViewById ( R . id . startactivity ) . setOnClickListener ( new View . OnClickListener ( ) { @Override public void onClick ( View v ) { Intent i = new Intent ( MainActivity . this , Main2Activity . class ) ; i . putExtra ( "data" , "hello world" ) ; startActivity ( i ) ; } } ) ; Intent i = getIntent ( ) ; textView = findViewById ( R . id . textView ) ; textView . setText ( i . getStringExtra ( "data" ) ) ; 传递数据包Bundle public void onClick ( View v ) { Intent i = new Intent ( MainActivity . this , Main2Activity . class ) ; // i.putExtra( "data","hello world" ); Bundle b = new Bundle (

Android 代码优化点滴

天大地大妈咪最大 提交于 2020-01-23 02:13:01
MVC 模型:Mode,View,Controller与view相关的类:DragLayer (自定义的帧布局DragLayer 包含hotseat ,workspace ,和DragController , DragListener 等一起使得桌面上的shortcut具备拖动功能,和DropTarget一起具备删除功能 桌面拖动,删除的处理:将workspace 和DragLayer通过一些接口:DropTarget, DragSource, DragScroller配套完成,DragLayer 和DragController 操纵以上接口类,在workspace 去实现具体)àworkspace(自定义的类似pageview,自己可以snapToPage,即可在不同的cellLayout之间切换,同时实现拖动,触摸等接口,做具体的动作)à cellLayout(默认一个workspace 包含两个cellLayout,可以增加,删除 )à ShortcutAndWidgetContainer(在cellLayout 中,真正是它来确定桌面上的Shortcut 的位置,大小等)à (ShortcutInfo,FolderInfo) 与Mode 相关的类:LauncherProvider 提供和数据库直接操作相关的接口,LauncherModel 非UI线程(后台线程

android Appwidget单击事件触发

ぐ巨炮叔叔 提交于 2020-01-22 18:29:39
@Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { super.onUpdate(context, appWidgetManager, appWidgetIds); final int N = appWidgetIds.length; for(int i=0; i<N;i++){ int appWidget = appWidgetIds[i]; Intent intent = new Intent(); intent.setClass(context, MainActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.AppWidgetLayout); views = updateViews(context); appWidgetManager.updateAppWidget(appWidget, views); } } os:Android 2.2

Android Launcher 详解

扶醉桌前 提交于 2020-01-22 08:17:24
(1) Launcher的定义:Android系统启动后,加载的第一个程序,是其他应用程序的入口。 (2) Launcher的构成:HomeScreen(1.workspace(AppWidget,Wallpaper,Livefolder,ShortCut),2.HotSeats,3.AllApps/allApplist:GridView) (3) 针对Launcher的开发类型: 1. 开发自定义的Launcher 2. 与Workspace相关的开发(AppWidget,Wallpaper,Livefolder,ShortCut) (4) 解读Launcher源代码(以ShortCut为例),Launcher为系统级应用,位于Applications层。源代码位于MyAndroid\packages\apps\Launcher2中,可讲它导入eclipse中。 (5) 看Manifest文件可知,Launcher的主Activity为:com.android.launcher2.Launcher。下面是它的部分配置信息: <activity android:name="com.android.launcher2.Launcher" android:launchMode="singleTask"> <intent-filter> <action android:name=

adb命令大全

Deadly 提交于 2020-01-21 15:38:59
ADB,即 Android Debug Bridge ,它是 Android 开发/测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具。 持续更新中,欢迎提 PR 和 Issue 补充指正,觉得有用的可以将 此 GitHub 仓库 Star 收藏备用。 注: 有部分命令的支持情况可能与 Android 系统版本及定制 ROM 的实现有关。 Other languages: 🇬🇧 English 基本用法 命令语法 为命令指定目标设备 启动/停止 查看 adb 版本 以 root 权限运行 adbd 指定 adb server 的网络端口 设备连接管理 查询已连接设备/模拟器 USB 连接 无线连接(需要借助 USB 线) 无线连接(无需借助 USB 线) 应用管理 查看应用列表 所有应用 系统应用 第三方应用 包名包含某字符串的应用 安装 APK 卸载应用 清除应用数据与缓存 查看前台 Activity 查看正在运行的 Services 查看应用详细信息 查看应用安装路径 与应用交互 启动应用/ 调起 Activity 调起 Service 停止 Service 发送广播 强制停止应用 收紧内存 文件管理 复制设备里的文件到电脑 复制电脑里的文件到设备 模拟按键/输入 电源键 菜单键 HOME 键 返回键 音量控制 媒体控制 点亮/熄灭屏幕 滑动解锁 输入文本