Android学习-输入信息并传递至另一Aty

本章通过输入文本,点击按钮传递至另一个Aty并显示信息
MainAty:

private TextView textview;
 textview=findViewById(R.id.textView);
 findViewById(R.id.btnStartAty).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i=new Intent(MainActivity.this,TheAty.class);//常规代码,跳转至另一页
                 startActivityForResult(i,0);//区别于startActivity(i)
                    }
        });
   protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        textview.setText("lingyige:"+data.getStringExtra("data"));  
        //此处有三个参数,需求代码、结果代码及值

TheAty:

private TextView tv ;
private EditText editText;
 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_the_aty);//自动代码
    tv= findViewById(R.id.tv);
    editText=findViewById(R.id.editText);
    findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i=new Intent();
            i.putExtra("data",editText.getText().toString());
            setResult(1,i);
            finish();
                  }
    });
### 如何在 Android Studio 中检测和调试内存泄漏 #### 工具介绍 Memory Profiler 是 Android Studio 提供的强大工具之,能够帮助开发者识别应用程序中的潜在内存泄漏问题[^2]。 #### 创建模拟场景 为了更好地理解如何使用 Memory Profiler 进行内存泄漏分析,可以先创建一个简单的项目作为案例研究。例如,通过定义 `Cache` 类故意引入内存泄漏: ```java // 文件路径:com/phoenix/l_ui/Cache.java package com.phoenix.l_ui; import java.util.ArrayList; import java.util.List; public class Cache { private static List<MainActivity> activities = new ArrayList<>(); public static Cache instance = null; public static synchronized Cache getInstance(){ if (instance == null){ instance = new Cache(); } return instance; } public void addAty(MainActivity aty) { activities.add(aty); } } ``` 上述代码片段展示了如何在一个静态列表中保存 Activity 实例,这通常会导致内存泄漏的发生[^3]。 #### 启动 Memory Profiler 打开目标应用后,在 Android Studio 底部导航栏选择 "Profiler" 标签页,接着点击左上角的应用进程名称旁边的下拉菜单,从中挑选要监控的目标进程。此时会显示 CPU、网络等多个性能指标图表;对于内存泄漏排查来说,重点关注的是 “Heap” 和 “Allocations”。 #### 执行操作触发泄漏 返回到正在运行的应用界面执行系列可能引发内存泄漏的操作(比如多次启动关闭活动)。之后再回到 Profiler 页面观察 Heap 变化情况。 #### 分析堆转储数据 当怀疑存在内存泄漏时,可以在 Memory Profiler 中捕获即时的堆转储快照。具体做法是在时间轴上的任意时刻右键单击鼠标,然后从弹出菜单里选取 Capture heap dump 选项。等待几秒钟直到完成采集过程,随后就能查看具体的对象分配详情以及引用链路图谱了。 旦定位到了疑似有问题的对象实例,可以通过进步深入探究其持有者关系网来确认是否真的构成了不可达垃圾回收状态下的资源占用——即所谓的“内存泄漏”。如果发现某个本应被释放却依然存活的对象,则说明很可能出现了此类错误。 #### 清理工作 最后记得移除所有人为制造出来的内存泄漏源码部分,重新验证修复效果以确保切正常运作。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值