android开发中service如何接收activity用intent发送来的数据

android开发中service如何接收activity用intent发送来的数据,第1张

service类必须实现一个接收方法,接收中传递的是intent

@Override

public IBinder onBind(Intent intent) {

Bundle bundle = intentgetExtras();

String stringVal = bundlegetString("stringValue"); //用于接收字符串

int numVal = bundlegetInt("intValue"); //用于接收int类型数据

byte[] bytes = bundlegetByteArray("bytesValue"); //用于接收字节流,你可以把文件放入字节流

return null;

}

你可以用Bundle来接受你从Activity发过来的数据,然后使用Bundle提供各个方法来接受数据。

如果仅仅是字符串之类的,

使用getStringExtra方法直接接收即可。

@Override

public IBinder onBind(Intent intent) {

String str1 = intentgetStringExtra("str1");

String str2 = intentgetStringExtra("str2");

return null;

}

try {

Intent intent = new Intent();

intentsetClass(MainMenuthis,Diamondclass);

startActivity(intent);//启动一个新的activity

MainMenuthisfinish();

}

catch (Exception e) {

Logi("异常标签",e);//不要用eprintStackTrace();Android一般都不提倡使用

}

1 IntentACTION_MAIN

String: androidintentactionMAIN

标识Activity为一个程序的开始。比较常用。

Input:nothing

Output:nothing

例如:

1

2

3

4

5

6

也可以直接在程序中实现 Intent it = new Intent(原Activityclass,需跳转Activityclass);

2 IntentAction_CALL

Stirng: androidintentactionCALL

呼叫指定的电话号码

Input:电话号码。数据格式为:tel:+phone number

Output:Nothing

Intent intent=new Intent();

intentsetAction(IntentACTION_CALL);

intentsetData(Uriparse("tel:1320010001");

startActivity(intent);

3 IntentActionDIAL

String: actionintentactionDIAL

调用拨号面板

Intent intent=new Intent();

intentsetAction(IntentACTION_DIAL); //androidintentactionDIAL

intentsetData(Uriparse("tel:1320010001");

startActivity(intent);

Input:电话号码。数据格式为:tel:+phone number

Output:Nothing

说明:打开Android的拨号UI。如果没有设置数据,则打开一个空的UI,如果设置数据,actionDIAL则通过调用getData()获取电话号码。

但设置电话号码的数据格式为 tel:+phone number

4IntentActionALL_APPS

String: andriodintentactionALL_APPS

列出所有的应用。

Input:Nothing

Output:Nothing

5IntentACTION_ANSWER

Stirng:androidintentactionANSWER

处理呼入的电话。

Input:Nothing

Output:Nothing

6 IntentACTION_ATTACH_DATA

String: androidactionATTCH_DATA

别用于指定一些数据应该附属于一些其他的地方,例如,数据应该附属于联系人

Input: Data

Output:nothing

7 IntentACTION_BUG_REPORT

String: androidintentactionBUG_REPORT

显示Dug报告。

Input:nothing

output:nothing

8 IntentAction_CALL_BUTTON

String: androidactionintentCALL_BUTTON

相当于用户按下“拨号”键。经测试显示的是“通话记录”

Input:nothing

Output:nothing

Intent intent = new Intent(IntentACTION_CALL_BUTTON);

startActivity(intent);

9 IntentACTION_CHOOSER

String: androidintentactionCHOOSER

显示一个activity选择器,允许用户在进程之前选择他们想要的,与之对应的是IntentACTION_GET_CONTENT

10 IntentACTION_GET_CONTENT

String: androidintentactionGET_CONTENT

允许用户选择特殊种类的数据,并返回(特殊种类的数据:照一张相片或录一段音)

Input: Type

Output:URI

这个以前用到过,看事例。

选择一个:

代码

int requestCode = 1001;

Intent intent = new Intent(IntentACTION_GET_CONTENT); // "androidintentactionGET_CONTENT"

intentsetType("image/"); // 查看类型,如果是其他类型,比如视频则替换成 video/,或 /

Intent wrapperIntent = IntentcreateChooser(intent, null);

startActivityForResult(wrapperIntent, requestCode);

>

requestCode是用来在主页面回收子页面的消息用的

在主页面中重写:

protected void onActivityResult(int requestCode, int resultCode,

Intent data) {

if (requestCode == YOUR_REQUEST_CODE) {//这里填写你的requestcode

if (resultCode == RESULT_OK) {

//你要执行的任务

}

}

}

}

在子页面重写 public void onBackPressed(){// 按下返回键的事件

superonBackPressed();

setResultCode(RESULT_OK);

}

如果你想从主页面向子页面传数据 ,请给intent里面添加数据即可

以上就是关于android开发中service如何接收activity用intent发送来的数据全部的内容,包括:android开发中service如何接收activity用intent发送来的数据、Android 捕捉Intent 异常、android中intent的作用 越详细越好等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9283459.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存