我已经注册了我的活动来处理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;
}
}
}
答案 0 :(得分:3)
您可以在广播接收器(直接在清单中)或服务中注册ACTION_DIAL
(现在这取决于您打算做什么)并且在那里具有相同的逻辑。如果需要,您可以从那里开始活动。