Activity之间传递数据是通过Intent来传递的。
Intent是一种运行时绑定(run-time binding)机制,它能在程序运行过程中连接两个不同的组件。通过Intent,你的程序可以向Android表达某种请求或者意愿,Android会根据意愿的内容选择适当的组件来完成请求。比如,有一个Activity希望打开网页浏览器查看某一网页的内容,那么这个Activity只需要发出WEB_SEARCH_ACTION给Android,Android就会根据Intent的请求内容,查询各组件注册时声明的IntentFilter,找到网页浏览器的Activity来浏览网页。
Android的三个基本组件——Activity,Service和Broadcast Receiver——都是通过Intent机制激活的,不同类型的组件有不同的传递Intent方式:
要激活一个新的Activity,或者让一个现有的Activity做新的 *** 作,可以通过调用ContextstartActivity()或者ActivitystartActivityForResult()方法。
要启动一个新的Service,或者向一个已有的Service传递新的指令,调用ContextstartService()方法或者调用ContextbindService()方法将调用此方法的上下文对象与Service绑定。
ContextsendBroadcast()、ContextsendOrderBroadcast()、ContextsendStickBroadcast()这三个方法可以发送Broadcast Intent。发送之后,所有已注册的并且拥有与之相匹配IntentFilter的BroadcastReceiver就会被激活。
Intent一旦发出,Android都会准确找到相匹配的一个或多个Activity,Service或者BroadcastReceiver作响应。所以,不同类型的Intent消息不会出现重叠,即Broadcast的Intent消息只会发送给BroadcastReceiver,而决不会发送给Activity或者Service。由startActivity()传递的消息也只会发给Activity,由startService()传递的Intent只会发送给Service。
内存(emory)
内部存储(ternalStorage)
1)storage或者mnt文件夹下
2) 通过:
EnvironmentgetExternalStorageDirectory()
可以看到外部存储的位置
3) 公有目录(DCIM、DOWNLOAD等),要使用需要申请权限。
4) 私有目录(Android/data/应用包名),只能被当前应用访问。
String path= EnvironmentgetExternalStorageDirectory()getAbsolutePath() +"/Mytesttxt";
try {
if (!fileexists()) {
filecreateNewFile();
}
}catch (IOException e) {
eprintStackTrace();
}
try {
if (!fileexists()) {
filecreateNewFile();
}
FileOutputStream fos=new FileOutputStream(path,true);
String str=infoEdtgetText()toString();
foswrite(strgetBytes());//以字节流的方式写入
}catch (IOException e) {
eprintStackTrace();
}
<uses-permission android:name="androidpermissionWRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="androidpermissionMOUNT_UNMOUNT_FILESYSTEMS"/>
其中第二条权限可能会报错,这时候解决办法是:
在报错的地方添加
tools:ignore="ProtectedPermissions"
同时在manifest标签里添加;
xmlns:tools=">
Test Activity
Java代码
package comnico;
import androidappActivity;
import androidcontentIntent;
import androidosBundle;
import androidviewView;
import androidviewViewOnClickListener;
import androidwidgetButton;
public class Test extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
superonCreate(savedInstanceState);
setContentView(Rlayoutmain);
Button btn1 = (Button) findViewById(Ridbtn1);
btn1setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Testthis,Test01class);
startActivity(intent);
}
});
}
}
Test 01 Activity
Java代码
package comnico;
import androidappActivity;
import androidcontentIntent;
import androidosBundle;
import androidutilLog;
import androidviewView;
import androidviewViewOnClickListener;
import androidwidgetButton;
import androidwidgetTextView;
public class Test01 extends Activity {
TextView txt2;
@Override
public void onCreate(Bundle savedInstanceState) {
superonCreate(savedInstanceState);
setContentView(Rlayouttest01);
Button btn2 = (Button) findViewById(Ridbtn2);
txt2 = (TextView) findViewById(Ridtxt2);
btn2setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intentsetClass(Test01this, Test02class);
intentputExtra("name", "nicolas");
//101 是请求码,方便在onActivityResult方法内处理不同请求码返回的intent 请求码须>=0
startActivityForResult(intent, 101);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
superonActivityResult(requestCode, resultCode, data);
Logv("Test","------------------------->");
String ss = datagetStringExtra("newname");
txt2setText(ss);
}
}
Test02 Activity
Java代码
在英语中,"action"和"activity"这两个词都可以表示行为或活动的意思。虽然这两个词在某些情况下可以互换使用,但它们之间确实存在一些细微的差别。
一般来说,"action"更倾向于表示一个具体的行为或动作,尤其是指某种明确的行为或反应,通常具有明确的意图和目的。例如,"I took action to fix the problem"(我采取了行动来解决问题)。
相比之下,"activity"更倾向于表示一种持续的活动或状态,通常没有特定的目的或意图。例如,"I enjoy outdoor activities like hiking and camping"(我喜欢户外活动,比如徒步旅行和露营)。
此外,"action"通常更强调行动的结果或效果,而"activity"则更强调活动本身的过程或经验。
综上所述,"action"和"activity"的区别在于前者更加强调具体的行动和结果,而后者更加强调持续的活动或状态。
android选项菜单怎么添加
android选项菜单怎么添加,Android选择框架--PictureSelector

weixin_39756235
转载
关注
0点赞·464人阅读
png
功能特点
支持通过拍照获取
支持通过相册获取
支持裁切
支持仿IOS底部d出选择菜单ActionSheet效果
支持60动态授予权限
解决有黑边问题
解决70调用相机crash问题
解决小米miui系统调用系统裁剪功能crash问题
使用
Step 1 添加JitPack仓库
在项目的buildgradle添加JitPack仓库
allprojects {
repositories {
maven { url ">
以上就是关于Android 两个Activity之间怎样使用Uri传递图片,怎样获取图片的Uri,怎样通过Uri得到图片全部的内容,包括:Android 两个Activity之间怎样使用Uri传递图片,怎样获取图片的Uri,怎样通过Uri得到图片、Android外部存储ExternalStorage、Android 用startforresult调用系统相册以后,不选照片 直接返回 在onacti等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)