我对Android应用程序非常陌生。我的应用程序正在通过在没有Wi-Fi连接时从SQLite数据库中读取数据来工作。应用程序的入口点是登录屏幕。
当没有Wi-Fi连接且没有缓存时,我们会弹出一条消息来设置Wi-Fi连接。一旦他们设置了Wi-Fi,我们就需要开始获取初始配置,以便在服务器的登录界面显示一些数据。
问题是我不知道如何在设置Wi-Fi后重新启动应用程序以从服务器获取数据。
答案 0 :(得分:0)
你还没有给我们太多的帮助,所以我能做的最好的就是给你一些高水平的建议。所有你需要做的就是一旦你完成设置wifi,然后启动另一个启动你的登录活动的Intent。因此,一旦完成WiFi设置,请执行以下操作:
Intent loginActivity = new Intent(this, LoginActivity.class);
startActivity(loginActivity);
这假定您从一个扩展Context
的类中调用,并且您的登录活动类的名称为LoginActivity
。
答案 1 :(得分:0)
如果没有,wifi会给他提供警告对话框
你应该使用startActivityForResult()
和
protected void onActivityResult(int requestCode, int resultCode,
Intent data)
这里有一些教程可以让你知道:nice example
答案 2 :(得分:0)
除了我对@ Kurtis的回答之外,这里还有一段快速而肮脏的示例代码,可以用来收听Wifi状态变化......
public class TestProjectActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Register for Wifi state changes.
this.registerReceiver(wifiChangedReceiver, new IntentFilter(
WifiManager.WIFI_STATE_CHANGED_ACTION));
}
// BroadcastReceiver that will get notified when the Wifi state changes.
private BroadcastReceiver wifiChangedReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context arg0, Intent arg1) {
int extraWifiState = arg1.getIntExtra(WifiManager.EXTRA_WIFI_STATE,
WifiManager.WIFI_STATE_UNKNOWN);
// No need to listen for all the states, but it might be interesting
// at a later point ;)
switch (extraWifiState) {
case WifiManager.WIFI_STATE_DISABLED:
showToast("Wifi disabled...");
break;
case WifiManager.WIFI_STATE_DISABLING:
showToast("Wifi disabling...");
break;
case WifiManager.WIFI_STATE_ENABLED:
showToast("Wifi enabled...");
break;
case WifiManager.WIFI_STATE_ENABLING:
showToast("Wifi enabling...");
break;
default:
break;
}
}
};
// Instead of showing a toast, you could launch a new activity.
private void showToast(String action) {
Toast.makeText(this, action, Toast.LENGTH_LONG).show();
}
// When leaving the activity that has registered for a broadcast, remember
// to unregister the broadcast or you'll get an exception at some point.
@Override
protected void onStop() {
super.onStop();
this.unregisterReceiver(wifiChangedReceiver);
}
}
有些人可能会认为将BroadcastReceiver移动到自己的类中会更好。这可以通过创建自己的类并通过BroadcastReceiver扩展类来实现。
希望这会有所帮助; - )