gpt4 book ai didi

android - 创建 Intent 时如何将接口(interface)传递给构造函数

转载 作者:行者123 更新时间:2023-11-29 01:54:44 28 4
gpt4 key购买 nike

我有两个 Activity :MainActivity 启动 NewReminderActivity。创建新提醒时,第一个将收到通知。因此它实现了接口(interface)OnEventAddedListener

我是否需要使用序列化来将 MainActivity 添加到 Intent 中,还是有更好的解决方案?我从未见过任何使用序列化来完成此操作的示例,而且我确信将接口(interface)从一个 Activity 传递到另一个 Activity 以进行通信是很常见的。

public class MainActivity extends Activity implements OnEventAddedListener {

@Override
public boolean onOptionsItemSelected(MenuItem item)
{
if(item.getItemId() == R.id.action_addReminder)
{
// NewReminderActivity c = new NewReminderActivity(this);
// Intent intent = new Intent(this, c.getClass()); // this won't work

Intent intent = new Intent(this, NewReminderActivity.class);
startActivity(intent);
return true;
} else {
return super.onOptionsItemSelected(item);
}
}
}

最佳答案

您绝对不应该尝试将一个 Activity 传递给另一个 Activity,无论是通过序列化它(由于多种原因这甚至不起作用)还是设置引用。

Android 会负责清理内存中的旧 Activity ,但只要您持有它的引用,就无法这样做。 永远不要捕获上下文之外的其他 Activity 或 fragment !

您应该遵循 starting activities and getting results 上的文档通过使用 startActivityForResult() 并通过 onActivityResult(int, int, Intent) 提供该 Activity 的结果。

关于android - 创建 Intent 时如何将接口(interface)传递给构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15852982/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com