我對Android應用程序來說非常新穎。當沒有Wi-Fi連接時,我的應用程序正在通過從SQLite數據庫讀取數據進行工作。應用程序的入口點是登錄屏幕。當有Wi-Fi連接時,在loginActivity本身中啓動loginActivity
當沒有Wi-Fi連接且沒有緩存時,我們彈出一條消息來設置Wi-Fi連接。一旦他們設置了Wi-Fi,那麼我們需要開始獲得初始配置,以在服務器的登錄屏幕上顯示一些數據。
問題是我不知道如何重新啓動應用程序,一旦我們設置Wi-Fi從服務器獲取數據。
我對Android應用程序來說非常新穎。當沒有Wi-Fi連接時,我的應用程序正在通過從SQLite數據庫讀取數據進行工作。應用程序的入口點是登錄屏幕。當有Wi-Fi連接時,在loginActivity本身中啓動loginActivity
當沒有Wi-Fi連接且沒有緩存時,我們彈出一條消息來設置Wi-Fi連接。一旦他們設置了Wi-Fi,那麼我們需要開始獲得初始配置,以在服務器的登錄屏幕上顯示一些數據。
問題是我不知道如何重新啓動應用程序,一旦我們設置Wi-Fi從服務器獲取數據。
你還沒有真正給我們留下太多的東西,所以我能做的最好的就是給你一些高層次的建議。所有你需要做的就是一旦你完成了無線網絡設置,然後啓動另一個Intent來啓動你的登錄活動。所以,一旦你的WiFi設置完成後,做類似如下:
Intent loginActivity = new Intent(this, LoginActivity.class);
startActivity(loginActivity);
這是假設你是從延伸Context
和您登錄活動類的名稱是LoginActivity
類調用。
作爲一個側面提示:你應該聽廣播的Wifi狀態改變。因此,當您收到廣播稱Wifi已更改爲「開啓」時,將啓動登錄活動。 – Darwind
如果你提供了一些示例代碼來做到這一點,那將是一個很大的幫助。謝謝 –
我在我的答案中添加了一些代碼。但是如果不知道更多關於你的節目的信息,我不能再給你任何東西。 –
如果沒有,無線網絡給他警告對話框和 ü應使用startActivityForResult()
和
protected void onActivityResult(int requestCode, int resultCode,
Intent data)
這裏有一些教程獲得ûstartred:nice example
另外對我評論@ 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擴展類來完成。
希望這有助於;-)
歡迎來到Stackoverflow!如果您發現回覆有幫助,請投票。如果回覆成功回答您的問題,請點擊旁邊的綠色複選標記以接受答案。另請看看http://stackoverflow.com/questions/how-to-ask關於如何寫出一個好問題的建議 –