我有一个无UI的MainActivity
,它拥有某些逻辑来确定用户是否已登录。如果用户已登录,我将开始HomeActivity
,如果没有,则LoginActivity
。即使逻辑工作正常,我看到MainActivity
确实在切换到所需活动之前开始了一段时间。有没有办法避免完全引起MainActivity
,因为它会导致烦人的闪烁?
这是我的代码(省略逻辑) -
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (condition) {
intent = new Intent(this, HomeActivity.class);
} else {
intent = new Intent(this, LoginActivity.class);
}
startActivity(intent);
finish();
}
}
提前致谢。
修改
这就是我在Android清单中的内容 -
<activity
android:name="org.step.main.MainActivity"
android:label="@string/app_name"
android:launchMode="singleInstance" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
答案 0 :(得分:13)
您可以尝试在意图
上设置FLAG_ACTIVITY_NO_ANIMATIONintent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
和/或在调用finish()
后调用overridePendingTransition(0, 0)
您还可以使用片段替换活动 - 将MainActivity与全屏scontainer一起替换为登录片段或Home Fragment。