在活动开始前完成活动?

时间:2014-02-18 16:25:39

标签: android

我已经注册了我的活动来处理ACTION_DIAL意图但在某些情况下我想基本上忽略意图。在onCreate中,我正在检查一个bool的SharedPreferences,这意味着用户有权访问,如果没有,那么我调用finish()然后返回;但是这仍然显示一个窗口闪烁然后关闭,我怎么能避免呢?

protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);

    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
    boolean hasDialer = prefs.getBoolean(Preferences.HAS_DIALER, false);

    // Check if ACTION_DIAL intent was launched to bring user into the app
    String number = getIntent().getDataString();
    if (!TextUtils.isEmpty(number))
    {
        if (hasDialer)
        {
            launchDialer = true;
        }
        else
        {
            finish();
            return;
        }
    }
}

1 个答案:

答案 0 :(得分:3)

您可以在广播接收器(直接在清单中)或服务中注册ACTION_DIAL(现在这取决于您打算做什么)并且在那里具有相同的逻辑。如果需要,您可以从那里开始活动。