网络状态更改后调用代码的位置

时间:2013-04-13 05:09:50

标签: android networking onresume

我正在开发一款Android应用,需要连接到互联网才能工作(填充listView)。很明显,当我进入它时,我会检查是否存在连接(这个链接以这种方式帮助了我:Display an alert when internet connection not available in android application)。

如果没有连接,则会出现alertDialog,告诉用户退出应用程序,或转到设置并启用网络访问。因此,在用户启用并返回后,我基本上需要运行需要访问的代码... 我的问题是......我应该从下面的if子句中放入代码?在onResume()或onRestart?

这是我到目前为止的代码:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (checkNetworkStatus()){
            System.out.println("i have internet !!!!!!!!");
        overridePendingTransition(R.anim.slide_left,R.anim.fade);

        setContentView(R.layout.activity_start);
        handler = new Handler();

        Button newOrderButton = (Button) findViewById(R.id.new_order_button);
        newOrderButton.setOnClickListener(newOrderListener);

        Button previousOrderButton = (Button) findViewById(R.id.previous_orders_button);
        previousOrderButton.setOnClickListener(previousOrderListener);
    } else {
        System.out.println("I don't have internet !!!!!!!!");
            AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(Start.this);
            .........
   }

1 个答案:

答案 0 :(得分:0)

如果用户离开活动以打开网络访问权限,那么无论如何,您当前的活动将调用OnPause()。当用户下次打开您的活动时,OnResume()将被明确调用,无论用户是退出应用程序还是仅进入设置并返回。检查this以查看说明调用这些函数的顺序的流程图。它将清除您对所需代码放在何处的疑问。希望这会有所帮助。