android Activity finish方法放在不同的地方会有不同的效果:
1、放在MainActivity测oncreate方法内:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//ßrequestWindowFeature(Window.FEATURE_NO_TITLE);
Log.d("MainActivity", "onCreate+++++++++++++++++++++++");
Intent intent = getIntent();
Button btn = findViewById(R.id.button2);
btn.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
Log.d("MainActivity", "onClick+++++++++++++++++++++++");
//EditText text = findViewById(R.id.editText);
//text.setText("Fucking Android");
Toast.makeText(MainActivity.this, "Button is Clicked", Toast.LENGTH_LONG).show();
Uri uri = Uri.parse("smsto:0800000123");
Intent it = new Intent(Intent.ACTION_SENDTO, uri);
it.setData(uri);
it.putExtra("sms_body", "The SMS text");
startActivity(it);
finish();
}
});
//直接放在activity oncteate里,会导致程序直接闪退结束
finish();
}
}
2、放在intent后的startActivity()后:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//ßrequestWindowFeature(Window.FEATURE_NO_TITLE);
Log.d("MainActivity", "onCreate+++++++++++++++++++++++");
Intent intent = getIntent();
Button btn = findViewById(R.id.button2);
btn.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
Log.d("MainActivity", "onClick+++++++++++++++++++++++");
//EditText text = findViewById(R.id.editText);
//text.setText("Fucking Android");
Toast.makeText(MainActivity.this, "Button is Clicked", Toast.LENGTH_LONG).show();
Uri uri = Uri.parse("smsto:0800000123");
Intent it = new Intent(Intent.ACTION_SENDTO, uri);
it.setData(uri);
it.putExtra("sms_body", "The SMS text");
startActivity(it);
finish();
}
});
//直接放在activity oncteate里,会导致程序直接闪退结束
//finish();
}
}
则是启动目标程序后,当前程序结束