Activity的生命周期与跳转

目录

Activity生命周期状态变

运行一个Android程序时,通常依次方法onCreate()、onStart()和onResume()。 按返回键时,依次调用方法:finish() -->父类方法onPause()-->onStop()  -->onDestrory() 程序运行时,当来电、通话结束后,会依次调用方法:onPause()--> onStop()-->onRestart()--->onStart()--->onResume()。我们可以用log.d来查看生命周期的各种变化。

部分代码如下

 @Override
    protected void onStart() {
        super.onStart();
        Log.d("xr","这是MainActivity3生命周期:onStart");
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.d("xr","这是MainActivity3生命周期:onPause");
    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.d("xr","这是MainActivity3生命周期:onResume");
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        Log.d("xr","这是MainActivity3生命周期:onRestart");
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.d("xr","这是MainActivity3生命周期:onStop");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.d("xr","这是MainActivity3生命周期:onDestroy");
    }

初次允许成功后logcat显示

当清除后台某一app,生命周期显示

当跳转到另一界面时

列表项的单项点击功能

参考大佬博客:https://www.jianshu.com/p/c4cfe38a91ed的内容(进阶篇中的 “点击”),在前次作业的基础上增加列表项的单项点击功能.

新建一个新的activity2作为跳转界面

public class MainActivity2 extends AppCompatActivity {
    private TextView textView;
    private Button button ;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main2);
        textView=findViewById(R.id.textView8);
        button=findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent=new Intent(MainActivity2.this,activityforresult.class);
                test.launch(intent);
            }
        });

    }

    public ActivityResultLauncher test=registerForActivityResult(new ActivityResultContracts.StartActivityForResult(),
            new ActivityResultCallback<ActivityResult>() {
                @Override
                public void onActivityResult(ActivityResult result) {
                    if(result.getResultCode()==798){
                        Log.d("rs","onActivityResult有返回值");
                        textView.setText(result.getData().getStringExtra("data"));
                    }
                }
            });

}

 在Adapter里面直接对控件做点击事件

public void onBindViewHolder(@NonNull Myholder holder, int position) {
        holder.textView.setText(list.get(position));
        holder.textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent=new Intent(context,MainActivity2.class);
                context.startActivity(intent);
            }
        });


    }

实现最新的activityforresult功能

新建一个新的activityforresult,显示更新后的内容
public class activityforresult extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_activityforresult);
        Intent intent=getIntent();
        intent.putExtra("mess","How to do this?\n"+(int)(Math.random()*1000)+"+"+(int)(Math.random()*1000)+"=" );
        setResult(798,intent);
        String str2= intent.getStringExtra("mess");
        TextView textView=findViewById(R.id.textView9);
        textView.setText(str2);
    }
}

intent消息传递,在这里就是完成activity之间的消息传递

结果

 点击

 

 代码 https://gitee.com/luludadaa/wx1.git

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值