目录
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之间的消息传递
结果
点击