处于不同栈Activity之间的启动与数据传递

Activity的启动模式有四种:
1、standard
最普通,Activity最常见并且默认的启动模式,可以实现不停地向任务栈中叠加新的Activity实例。
2、singleTop
如果该Activity(singleTop)已经存在于Task栈中,并且置于栈顶,那么再次启动该Activity时,将不再实例化Activity,而是直接持有该Activity的引用。
如果该Activity不在栈顶,则new一个新的Activity置于栈顶。
3、singleTask
如果当前Task栈中已经存在某个以singleTask启动好的Activity,那么当该Activity再次被启动,则直接将该Activity置入当前Task栈顶,并移除该Activity之上的所有Activity。
4、singleInstance
该Activity独占一个Task Stack,在该Activity中启动另外一个Activity并不会在当前栈中创建实例或引用。如果重复开启该Activity (singleInstance),会检查当前BackStack中有没有该Activity的实例,如果有,则将该Activity所在TaskStack压入BackStack栈顶。

当进行两个Activity之间启动,传输数据,数据回传的操作时候。一般用到onActivityResult方法(当两个Activity在用一个TaskStack任务栈中)

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
   
    Button button;
    TextView textView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button = (Button) findViewById(R.id.button_main);
        textView = (TextView) findViewById(R.id.textview);

         ActivityUtils.getInstance().stacks.add(this);
        final String weather_info = "这是main传输的数据";

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
            
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值