【发布时间】:2014-09-06 01:16:27
【问题描述】:
我的登录屏幕有问题。当它启动时,我检查网络连接,如果它被禁用,我想显示 NoNetworkActivity。其他屏幕也是如此:启动 Activity 时,我检查网络连接并导航到 NoNetworkActivity 是需要的。导航时,我想保存启动此先前活动的 Intent 并完成它以在 NoNetworkActivity 上禁用后退按钮重定向。因此,当连接恢复时,我想启动该意图并在出现此错误之前获取应用程序的实际状态:
登录活动
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
if (!App.getInstance().isNetworkConnected()) {
Intent noNetwork = new Intent(this, NoNetworkActivity.class);
noNetwork.putExtra(NoNetworkActivity.EXTRA_FAILED_INTENT, getIntent());
startActivity(noNetwork);
finish();
}
...
NoNetworkActivity
private void checkNetworkConnection() {
mCheckButton.setVisibility(View.INVISIBLE);
mProgressBar.setVisibility(View.VISIBLE);
if (App.getInstance().isNetworkConnected()) {
Intent failedIntent = getIntent().getParcelableExtra(EXTRA_FAILED_INTENT);
startActivity(failedIntent);
finish();
} else {
mCheckButton.setVisibility(View.VISIBLE);
mProgressBar.setVisibility(View.INVISIBLE);
App.toast("Connection failed");
}
}
而且越来越奇怪:startActivity(failedIntent) 什么都不做。我试图从下一行中删除 finish() ,而 NoNetworkActivity 只是保持在顶部而没有发生任何事情。
还有一件事。您可以建议传递 Activity 实际类名而不是意图,但我真的需要 Intent。那是因为我在每项活动中都使用了很多启动操作和一堆附加功能。
提前感谢您的帮助。干杯!
【问题讨论】:
-
你想从
NoNetworkActivity开始哪个Activity? -
什么是
App?在您的代码中,您使用App.getInstance()之类的东西
标签: android android-intent android-activity