我的主要活动处理 ACTION_SEND 意图。我根据意图文本中接收到的数据在数据库中添加了一条新记录。我的问题是,android 在方向改变后显然保留了这个意图,所以每次我旋转手机时,我的数据库中都会多出一行。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.db_list);
Intent intent = getIntent();
String action = intent.getAction();
String type = intent.getType();
if (Intent.ACTION_SEND.equals(action) && type != null) {
if ("text/plain".equals(type)) {
storeTextInDatabase(intent);
}
}
fillListFromDB();
registerForContextMenu(getListView());
}
在每个新收到的意图之后,我如何才能只调用一次 storeTextInDatabase(intent) 。我的第一个想法是,我将检查 savedInstanceState 包的内容,如果它为空,那么它是 Activity 的第一次调用。这个解决方案有一个问题,我想处理在我的 Activity 生命周期内广播的多个意图。