导航:首页 > 操作系统 > androidintent用法

androidintent用法

发布时间:2024-07-04 17:30:44

android parcelable有没有限制大小

androidintent传递数据是没有数量限制的,但是Parcelable是将数据存到内存中的ROM中,数量是没有限制的,但是一个android应用进程最大使用16MB的内存。Intent是一种运行时绑定(run-timebinding)机制,它能在程序运行过程中连接两个不同的组件。通过Intent,你的程序可以向Android表达某种请求或者意愿,Android会根据意愿的内容选择适当的组件来完成请求。比如,有一个Activity希望打开网页浏览器查看某一网页的内容,那么这个Activity只需要发出WEB_SEARCH_ACTION给Android,Android就会根据Intent的请求内容,查询各组件注册时声明的IntentFilter,找到网页浏览器的Activity来浏览网页。在Android中实现Parcelable接口的类可以支持序列与反序列化,以下是一个实现的举例:1.实现Parcelable接口2.添加实体属性3.覆写writeToParcel(Parceldest,intflags)方法,指定写入Parcel类的数据。4.创建Parcelable.Creator静态对象,有两个方法createFromParcel(Parcelin)与newArray(intsize),前者指定如何从Parcel中读取出数据对象,后者创建一个数组。5.覆写describeContents方法,默认返回0。

⑵ Android intent能不能自定义category

你当然可以自己定义啦,但是呢~ 一般情况他是有个DEFAUT的Intent 可以包含一个Action 与 多个Category 的,其中更可以包含data

⑶ android怎么返回上一个Activity啊

在A中启动B时这样写

Intent intent=new Intent(MainActivity.this,SecMainActivity.class);
startActivityForResult(intent, 1);
然后在
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
}
这个函数中处理,关于这个函数你可以搜一下用法,
在B中关闭页面时这样写
Intent data=new Intent();
data.putExtra("datacount", (addPingLunCount));
BoSecMainActivityhis.setResult(1, data);

⑷ Android中AM、PM、mpsys命令使用总结

am指令是 activity manager的缩写,可以启动Service、Broadcast,杀进程,监控等功能,这些功能都非常便捷调试程序。

可以通过adb shell 进入Android 的Linux命令界面,输入am -help查看详细命令,先介绍几个简单用法,

命令格式如下

命令列表:

原理分析:am命令实的实现方式在Am.java,最终几乎都是调用ActivityManagerService相应的方法来完成的,am monitor除外。比如前面概述中介绍的命令am start -a android.intent.action.VIEW -d https://amberweather.com , 启动Acitivty最终调用的是ActivityManagerService类的startActivityAsUser()方法来完成的。再比如am kill-all命令,最终的实现工作是由ActivityManagerService的killBackgroundProcesses()方法完成的。

下面说一下[options]和 <INTENT>参数的意义以及如何正确取值。

主要是启动Activity命令am start [options] <INTENT>使用options参数,接下来列举Activity命令的[options]参数:

启动Activity的实现原理: 存在-W参数则调用startActivityAndWait()方法来运行,否则startActivityAsUser()。

命令

例如: 向pid=12345的进程,发出level=RUNNING_LOW的收紧内存命令

level取值范围为: HIDDEN、RUNNING_MODERATE、BACKGROUND、RUNNING_LOW、MODERATE、RUNNING_CRITICAL、COMPLETE

am的子命令,startservice, stopservice, broadcast, kill, profile start, profile stop, mpheap的可选参数都允许设置--user <USER_ID>。目前市面上的绝大多数手机还是单用户模式,因此可以忽略该参数,默认为当前用户。

例如:启动id=10001的用户的指定service。

Intent的参数和flags较多,为了方便,这里分为3种类型参数,常用参数,Extra参数,Flags参数

实例

(1). 基本类型

参数es是Extra String首字母简称,实例:

(2). 数组类型

参数eia,是Extra int array首字母简称,多个value值之间以逗号隔开,实例:

(3). ArrayList类型

参数efal,是Extra float Array List首字母简称,多个value值之间以逗号隔开,实例:

pm工具为包管理(package manager)的简称,可以使用pm工具来执行应用的安装和查询应用宝的信息、系统权限、控制应用,pm工具是Android开发与测试过程中必不可少的工具,shell命令格式如下:

原理分析:pm命令实的实现方式在Pm.java,最后大多数都是调用PackageManagerService相应的方法来完成的。disbale之后,在桌面和应用程序列表里边都看到不该app。

查看所有的package,

[options]参数:

disabled + enabled = 总应用个数; 系统 + 第三方 = 总应用个数。

查看第3方应用:

查看已经被禁用的包名

<FILTER>参数
当FILTER为不为空时,则只会输出包名带有FILTER字段的应用;当FILTER为空时,则默认显示所有满足条件的应用。

例如,查看包名带有weather字段的包名

[options]参数:

<PATH>参数: 指的是需要安装的apk所在的路径

mpsys是Android自带的强大debug工具,从名字就可以看出,主要是用于mp 当前android system的一些信息,是一项分析手机问题,运行状态,使用情况等十分有效的手段。

实现原理
mpsys的源码结构其实很简单,只有一个mpsys.cpp
/frameworks/native/cmds/mpsys/mpsys.cpp

先通过defaultServiceManager()函数获得ServiceManager对象,然后根据mpsys传进来的参数通过函数checkService来找到具体的service, 并执行该service的mp方法,达到mp service的目的。

不同的Android系统版本支持的命令有所不同,可通过下面命令查看当前手机所支持的mp服务,先进入adb shell,再执行如下命令:mpsys -l。 这些服务名可能并看不出其调用的哪个服务,可以通过下面指令:service list。

服务列表有很多,这里简单介绍几种

通过下面命令可打印具体某一项服务:mpsys <service>,其中service便是前面表格中的服务名

接下来主要说下mpsys activity 用法

命令

options可选值

mpsys activity等价于依次输出下面7条指令:

cmd可选值

命令

返回结果

上面的输出结果可以分为以下四个部分

也可以只输出某个pid或package的进程信息:

下面以AmberLocker作为实例进行分析

场景1:查询某个App所有的Service状态

解读:Service类名为com.amber.lockscreen.LockerHeartService,包名为mobi.infolife.ezweather.locker.locker_2,baseDir(apk路径)为/data/app/mobi.infolife.ezweather.locker.locker_2-2/base.apk,dataDir((apk数据路径)
运行在进程pid=1115,进程名为进程名为mobi.infolife.ezweather.locker.locker_2,,uid=10060,还有创建时间等信息

场景2:查询某个App所有的广播状态

场景3:查询某个App所有的Activity状态

场景4:查询某个App的进程状态

格式:ProcessRecord{Hashcode pid:进程名/uid},进程pid=941,进程名为mobi.infolife.ezweather.locker.locker_2:live,uid=10060.
该进程中还有Services,Connections, Providers, Receivers,

场景5:查询栈顶Activity

mpsys 的命令还有很多,这里就不一一列举了。

⑸ android问题:intent.setClass(FirstActivity.this, SecondActivity.class);

这是android的传递对象方法。从第一个activity跳转到另一个activity,setClass就是传递对象基础类设置。假如我们设置2个活动布局,一个是登陆界面logen一个是主界面mainfrm。他的登录按钮切换界面写法就是:

Intentit=newIntent();
it.setClass(logen.this,mainfrm.class);
startActivity(it);

要传参还要用it.putExtra方法,它实际上是这种方法:

Intentit=newIntent(logen.this,mainfrm.class);
startActivity(it);

就是java语言、C#的new对象一样。

阅读全文

与androidintent用法相关的资料

热点内容
可以搜简便算法的软件 浏览:198
各种的解压小玩具 浏览:933
百度云服务器bcc域名绑定 浏览:486
android网络mp3格式 浏览:321
程序员抱怨it气氛 浏览:698
改apk服务器地址 浏览:414
原理图中的编译 浏览:924
缤智怎么给车机安装app 浏览:728
服务器的证件是什么 浏览:538
linuxgraphics 浏览:137
ACPI编译工具MaciASL 浏览:895
导线点加密技巧 浏览:103
闪迪加密软件如何去除 浏览:560
格力压缩机技术 浏览:7
app下单约妹子的什么语音 浏览:834
华为软件加密怎么关闭 浏览:325
安卓手机q系统怎么用 浏览:105
一个淡定的程序员 浏览:423
怎么在dos窗口打开python 浏览:591
怎么通过网页取服务器ip 浏览:789