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的作用 越详细越好等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)