2

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

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

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);
       }
   }
}
4

1 回答 1

1

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

Android 将负责清理内存中的旧活动,但只要您坚持对它的引用,就无法这样做。永远不要在他们的上下文之外抓住其他活动或片段!

您应该遵循有关使用启动活动和获取结果的文档,startActivityForResult()并通过onActivityResult(int, int, Intent).

于 2013-04-07T15:47:09.770 回答