안드로이드 개발 질문/답변
(글 수 45,052)
먼저 본 질문은 해결방법에 촛점이 있는 것이 아닌 webview의 동작 원리를 보다 정확히 알고 싶다는 질문이라는 점을 먼저 말씀드립니다-
webview에 naver url와 검색어를 던져서 검색 하는 로직을 짰는데요
1.검색 도중에 백키를 누르면 메인 activity 로 돌아 옵니다.
2.검색이 정상적으로 동작하면 (검색 결과가 있으면) 백키를 누를때 메인 activity로 돌아옵니다.
3.검색이 비정상으로 끝나면 (검색 결과가 없으면) 백키를 누를때 어플이 종료 됩니다.
@onResume과 @onFinish에 토스트를 찍어서 확인해보니 1,2번은 resume으로 돌아오고 3번은 finish로 돌아오네요
이같은 차이가 잘 이해되지 않습니다.
어떤 이유일까요.?
아무래도 xml의 webview 위치가 꺼림칙 해서 관련 부분을 올립니다.
아래는 현재 구현된 메인 ui xml 입니다.<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:scrollbarAlwaysDrawVerticalTrack="true"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<LinearLayout
android:id="@+id/stock_main_linearLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<ListView
android:id="@android:id/list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginBottom="5dp"
/>
</LinearLayout>
<WebView
android:id="@+id/wvBrowser"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</FrameLayout>
2010.06.28 21:05:55
안녕하세요
webview.canGoBack()와 webview.goBack()함수를 사용하여 체크해 보셔요.
새로운 웹 페이지가 로드 되었으면 히스토리가 있어서 전에의 페이지로 돌아가는것일테구 ( 1,2번 케이스)
그렇지 않으면 히스토리가 없으니까 어플이 종료되게 됩니다.
2010.06.29 18:35:25
아 메인화면은 웹페이지가 아니고 일반 activity 인데요
list를 클릭하게 되면 webview로 url을 던지는 형식입니다.
위의 질문에서 이전 페이지로 간다는 것이 웹페이지에서 이전페이지로 간다는 말씀이 아니고
list activity 화면으로 돌아간다는 내용입니다-.
2010.07.01 12:32:53
자답입니다;;
webview가 url을 받아서 웹페이지를 표현할 때 자체 webview에서 표현할 때가 있고 web broswer를 로드해서 해줄때가 있더군요
위의 기준은 아직 찾지 못 했는데요 (아시는 분은 명쾌한 해답을...)
어쨋든 제 문제는 webview로 로드 된 것이 아니라 web browser로 로드 된 것이 문제인 것 같습니다.
메인페이지 밑 짜투리에 webview를 선언해두면 webbroswer가 로드 되지 않는 한 화면에 나오지도 않더군요.
때문에 자동으로 로드 된 webbrowser는 저렇듯 back key 등에서 원하는 대로 콘츄랄 되지 않는다고 생각이 되었구요
webview activity를 하나 만들어서 그쪽으로 url을 넘겨서 실행을 하니 webview도 하나의 activity 로 원하는 동작이 되는군요
근데 뭔가 석연 찮은 구석이 많은데... 답이 있으신분은... 쿨럭.. 헤울프~