除非将其作为活动打开,否则如何调用方法?

时间:2018-08-10 12:07:30

标签: android android-intent

通过意图打开Activity时是否可以触发方法。 我在文章中找到onNewIntent(),但不知道它是如何工作的。

例如,如果我有方法loadData()。在loadData方法中,我将收到一个Intent并获得一个额外的数组。

public void loadData(){
Bundle bundle = getIntent().getExtras();
contactsList = (ArrayList<Contact>)bundle.getSerializable("array");
}

但是我只希望调用loadData(),除非它是故意打开的,否则会引发错误。

本文How to call a method using intent与我想要的类似,因为getIntent似乎被称为oncreate。我不知道这是否行得通。

谢谢您的任何帮助。

2 个答案:

答案 0 :(得分:3)

检查意图是否具有值或null。如果其具有值,则调用您的方法

if(getIntent().getExtras() != null)
{
loadData()
}

答案 1 :(得分:0)

您可以将参数发送到“活动”,并检查该参数是否存在以触发该方法。这符合您的需求吗?

Intent intent = new Intent(this, OtherActivity.class);
intent.putExtra("loadData", true);

在新活动中,检查该值:

Boolean loadData = getIntent().getExtras().getBoolean("loadData");
if(loadData) {...}