是否可以从一个意图发送信号并在另一个意图中恢复它
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"));
}
}
我有 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"));
}
}