Вопрос по android-layout, android – Прикрепить / отсоединить вид Android к / из макета

1

Я хочу создать WebView в методе onCreate () производного класса Application, затем присоединить его к основному макету при вызове операции onCreate () и отсоединить его при вызове onDestroyed (). Таким образом, каждый раз, когда действие создается / уничтожается, компонент WebView будет одинаковым (своего рода одиночным). Проблема в том, что я (с моим опытом работы с Windows API) понятия не имею, как это сделать. Просто новый WebView () / addiew () / removeView ()?

Вы спросили, почему я хочу это сделать?Предотвратить повторное создание активности Android при выключении экрана В нескольких словах, WebView никогда не должен быть уничтожен.

Ваш Ответ

1   ответ
2

жения в манифесте.

public class MyApp extends Application
{
    public WebView _WebView = null;

    @Override
    public void onCreate()
    {
        _WebView = new WebView(getApplicationContext());
        // Settings etc.
        _WebView.loadUrl("url");

        super.onCreate();
    }
}

Удалить представление из main.xml.

public class MyActivity extends Activity
{
    WebView _WebView;
    RelativeLayout _Layout; // Should be declared in main.xml.

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

        _Layout = (RelativeLayout) findViewById(R.id.rl);
        ViewTreeObserver vto = _Layout.getViewTreeObserver(); 
        vto.addOnGlobalLayoutListener(new MyLayoutListener()); // .layout(0,0,width,height);

        Display display = getWindowManager().getDefaultDisplay();
        MyApp app = (MyApp) this.getApplication();
        _WebView = app._WebView;
        _Layout.addView(_WebView, display.getWidth(), display.getHeight());
    }

    @Override
    protected void onDestroy()
    {
        _Layout.removeView(_WebView);
        super.onDestroy();
    }
}

private class MyLayoutListener implements OnGlobalLayoutListener
{
    public void onGlobalLayout()
    {
        Display display = getWindowManager().getDefaultDisplay();
        _WebView.layout(0, 0, display.getWidth(), display.getHeight());
        //_Layout.getViewTreeObserver().removeGlobalOnLayoutListener(this);
    }
}
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded noober
Error: User Rate Limit Exceeded

Похожие вопросы