是否可以从一个意图发送信号并在另一个意图中恢复它

Is it possible to send a signal from an intent and recover it in another intent

我有 2 个活动.. 一个是通过深层链接启动的。 MainActivity 不会启动 DeeplinkActivity。我如何从 MainActivity 知道 DeeplinkActivity 何时完成。

我试过以编程方式设置意图过滤器。然后将其添加到 MainActivity,然后在 DeeplinkActivity sendBroadcast 中。

我没有成功,因为 MainActivity 中的广播恢复方法没有响应 Deeplink 通过 sendBroadcast(getIntent()) 发送的广播

您要查找的函数是putExtra() 把这个放在你的 FirstActivity :

Intent intent  = new Intent (FirstActivity.this , SecondActivity.class);
intent.putExtra("your key" , yourBooleanVariable) ;
FirstActivity.this.startActivity(intent) ; 

你的第二个代码 Activity :

Intent intent = getIntent() ;
Bundle bundle = intent.getExtras();
if(intent.hasExtra("your key")){
Boolean boolean = bundle.getBoolean();
}

您可以使用 putExtra 将所有内容放入捆绑包中,然后在第二个 Activity

中从捆绑包中获取它

可以使用接口,在DeepLink的onDestroy()里面activity调用接口方法,在MainActivity中实现方法。 检查这个答案。

模型和广播方法都有效。

我选择使用广播方式更简单

MainActivity

public class MainActivity extends Activity {

    private BroadcastReciever receiver;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        receiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context p1, Intent p2) {
                // TODO: Implement this method
            }
        };
        registerReceiver(receiver, new IntentFilter(getPackageName() + ".FOO_BAR"));
      
    }

    @Override
    protected void onDestroy()
    {
        super.onDestroy();
        unregisterReceiver(receiver);
    }
}

DeepLink

public class DeepLink extends Activity {
    @Override
    protected void onDestroy()
    {
        super.onDestroy();
        sendBroadcast(new Intent(getPackageName() + ".FOO_BAR"));
    }
}