if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) { finish(); return; }
时间: 2024-06-01 11:08:59 浏览: 155
这段代码是在 Android 中的 Activity 中的 onCreate() 方法中常见的一段代码,用于判断当前 Activity 是否是被其他 Activity 唤醒而已经处于前台,如果是,则将当前 Activity 关闭,使用户看到的界面保持一致。
具体来说,这里使用了 Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT 标志位,该标志位表示当前 Activity 已经在前台运行了,如果该标志位存在,则说明当前 Activity 在栈顶,需要关闭。然后通过调用 finish() 方法关闭当前 Activity,最后通过 return 语句结束 onCreate() 方法的执行。
相关问题
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.edit_layout); myToolbar = findViewById(R.id.my_Toolbar); setSupportActionBar(myToolbar); getSupportActionBar().setHomeButtonEnabled(true); getSupportActionBar().setDisplayHomeAsUpEnabled(true); //设置toolbar取代actionbar myToolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { autoSetMessage(); setResult(RESULT_OK, intent); finish(); } }); et = findViewById(R.id.et); Intent getIntent = getIntent(); openMode = getIntent.getIntExtra("mode", 0); if (openMode == 3) {//打开已存在的note id = getIntent.getLongExtra("id", 0); old_content = getIntent.getStringExtra("content"); old_time = getIntent.getStringExtra("time"); old_Tag = getIntent.getIntExtra("tag", 1); et.setText(old_content); et.setSelection(old_content.length()); } } @Override protected void needRefresh() { Log.d(TAG, "needRefresh: Edit"); setNightMode(); Intent intent = new Intent(this, EditActivity.class); startActivity(intent); }这里运用了哪些技术
这段代码运用了Android开发中常用的技术,包括:
1.使用了Android中的Activity类,重写了onCreate()方法和needRefresh()方法。
2.使用了Android中的Bundle类和Intent类,用于传递数据和启动Activity。
3.使用了Android中的布局文件R.layout.edit_layout,使用了findViewById()方法获取了布局文件中的控件对象。
4.使用了Android中的Toolbar控件,使用了setSupportActionBar()方法将Toolbar对象设置为ActionBar,使用了setHomeButtonEnabled()和setDisplayHomeAsUpEnabled()方法显示返回按钮。
5.使用了Android中的EditText控件,使用了setText()和setSelection()方法设置EditText的文本内容和光标位置。
6.使用了Android中的Log类,用于输出调试信息。
总的来说,这段代码运用了Android中常用的UI控件、Intent传递数据和Log调试技术。
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_estimate); Intent intent = getIntent(); String code = intent.getStringExtra("code"); String name = intent.getStringExtra("name"); final long ranking = intent.getLongExtra("ranking",0L); final float pe = intent.getFloatExtra("pe", 0.0f); final float pb = intent.getFloatExtra("pb", 0.0f); tv_code = (TextView) findViewById(R.id.tv_code); tv_name = (TextView) findViewById(R.id.tv_name); tv_ranking = (TextView) findViewById(R.id.tv_ranking); tv_pe = (TextView) findViewById(R.id.tv_pe); tv_pb = (TextView) findViewById(R.id.tv_pb); tv_suggestEstimate = (TextView) findViewById(R.id.tv_suggestEstimate); tv_code.setText("姓名:" + code); tv_name.setText("单位:" + name); tv_ranking.setText("手机号码:" + ranking); tv_pe.setText("邮件:" + pe); tv_pb.setText("备注:" + pb); btn_estimate = (Button) findViewById(R.id.btn_estimate); btn_estimate.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { estimateResult = estimateData(ranking, pe, pb); //Log.i("EA", estimateResult) ; tv_suggestEstimate.setText("提示:" + estimateResult); } }); btn_return = (Button) findViewById(R.id.btn_return); btn_return.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.putExtra("data", estimateResult); setResult(2, intent); finish(); } }); }如何去掉final
如果想要去掉 `final` 关键字,需要注意以下几点:
1. `ranking`、`pe`、`pb` 这三个变量在 `onClick` 方法中被使用,如果去掉 `final`,则这三个变量如果在 `onClick` 方法中被修改,编译时会报错。
2. 如果想要去掉 `final`,则需要将这三个变量定义为 Activity 的成员变量,而不是在 `onCreate` 方法中定义。
下面是修改后的代码:
```java
private long ranking;
private float pe;
private float pb;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_estimate);
Intent intent = getIntent();
String code = intent.getStringExtra("code");
String name = intent.getStringExtra("name");
ranking = intent.getLongExtra("ranking",0L);
pe = intent.getFloatExtra("pe", 0.0f);
pb = intent.getFloatExtra("pb", 0.0f);
tv_code = (TextView) findViewById(R.id.tv_code);
tv_name = (TextView) findViewById(R.id.tv_name);
tv_ranking = (TextView) findViewById(R.id.tv_ranking);
tv_pe = (TextView) findViewById(R.id.tv_pe);
tv_pb = (TextView) findViewById(R.id.tv_pb);
tv_suggestEstimate = (TextView) findViewById(R.id.tv_suggestEstimate);
tv_code.setText("姓名:" + code);
tv_name.setText("单位:" + name);
tv_ranking.setText("手机号码:" + ranking);
tv_pe.setText("邮件:" + pe);
tv_pb.setText("备注:" + pb);
btn_estimate = (Button) findViewById(R.id.btn_estimate);
btn_estimate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
estimateResult = estimateData(ranking, pe, pb);
//Log.i("EA", estimateResult) ;
tv_suggestEstimate.setText("提示:" + estimateResult);
}
});
btn_return = (Button) findViewById(R.id.btn_return);
btn_return.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.putExtra("data", estimateResult);
setResult(2, intent);
finish();
}
});
}
```
阅读全文