Как вызвать новый макет, когда нет сетевого подключения? - PullRequest
1 голос
/ 08 августа 2011

Хорошо, вот моя проблема:

Я собираюсь начать новое действие, когда нет подключения к Интернету, но экран нового действия черный.Новое действие должно отображать ImageView ...

ПРОВЕРЬТЕ СОЕДИНЕНИЕ И НАЧАТЬ НОВУЮ ДЕЯТЕЛЬНОСТЬ:

    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = cm.getActiveNetworkInfo();
if (info != null) {
    if (!info.isConnected()) {
    }
}
else {
    startActivity(new Intent(main.this, no_connection.class));
}

NO_CONNECTION ДЕЯТЕЛЬНОСТЬ:

    package com.hello.hello;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ImageView;

public class no_connection extends Activity {


        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.connection_error);
            ImageView image = (ImageView) findViewById(R.id.image_verkkovirhe);

      }
}

И ЗДЕСЬ CONNECTION_ERROR LAYOUT:

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent" 
  android:id="@+id/connection_error" 
  android:fitsSystemWindows="true" android:orientation="vertical">



        <ImageView 
        android:src="@drawable/verkkovirhe" 
        android:layout_width="fill_parent" 
        android:id="@+id/image_verkkovirhe" 
        android:layout_height="fill_parent" 
        android:clickable="false" 
        android:fitsSystemWindows="true" 
        android:visibility="visible"></ImageView>


    </RelativeLayout>

ИЛИ

Может быть, я могу изменить макет только при отсутствии сетевого подключения?Когда я пытаюсь это сделать, я получаю силу близко?

ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo info = cm.getActiveNetworkInfo();
    if (info != null) {
        if (!info.isConnected()) {
        }
    }
    else {
        setContentView(R.layout.connection_error );
    }

1 Ответ

1 голос
/ 08 августа 2011

Если вы начинаете новое действие из службы, вы должны использовать флаг FLAG_ACTIVITY_NEW_TASK. Это должно выглядеть так:

Intent intent = new Intent(main.this, no_connection.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
...