检查是否正在调用意图或默认情况下是否启动活动

Ale*_* S. 3 methods android android-intent

如何检查默认情况下是否启动了活动或从其他活动的意图中调用了该活动的方法?我认为目前我的代码很糟糕,因为我可以通过Try / Catch处理它,但是效果很好,但是我想要更好的代码

public class MyScan extends Activity {
public final static String EXTRA_MESSAGE = ".MESSAGE";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    checkIntent();
}

public void checkIntent() {
    try {
        Intent i = getIntent();
        String method_name = i.getStringExtra("method_name");// is firing an error if there is no intent call
        if (method_name.equals("scanBarcode")) {
            scanBarcode2();// That starts my method
        }
    } catch (Exception e) {
        setContentView(R.layout.activity_my_scan); // that shows just my Content
    }

}
....
Run Code Online (Sandbox Code Playgroud)

谢谢您的提示Alex Terreaux

我这样改变了代码

public void checkIntent() {
    Intent i = getIntent();
    if (i != null) {
        String method_name = i.getStringExtra("method_name");
        if (method_name != null && method_name.equals("scanBarcode")) {
            scanBarcode2();
        } else {
            setContentView(R.layout.activity_my_scan);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

那行得通。

Ale*_*aux 5

尝试检查的结果是否getIntent()为空。