누구나 내가 다른 클래스/객체의 내부에 내 주요 활동의 중지시, onPause와 onResume 콜백을받을 수 있는지 알고 등록?안드로이드 : 다른 활동의 중지시
나는 다른 클래스 (웹보기)의 내부에 살고있는 방송 수신기를 가지고있다. 수신기를 사용하여 네트워크가 다운 된 때를 감지하고 유용한 콘텐트로 내 페이지의 로컬 복사본으로 전환합니다. onStop/onPause가 호출 될 때 브로드 캐스트 리시버의 등록을 해제하고 onResume 중에 다시 등록해야합니다. 나는 손으로이 작업을 수행 할 수 있습니다
는 (난 그냥 그렇게 웹보기를 확장하는 클래스에 몇 public 메소드를 추가)하지만 안드로이드 그냥 나를 위해 그것을 호출이 좋을 것입니다.
편집 : 물론, 여기에 클래스, 난 내 주요 활동의 중지시가 호출 될 때 startInternetMonitoring()를 호출 할 필요없이 안드로이드에서 콜백을 얻을받을 수 있도록하고 싶습니다/stopInternetMonitoring() :
package com.glimmersoft.spent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.res.Resources;
import android.net.ConnectivityManager;
import android.util.AttributeSet;
import android.util.Log;
import android.webkit.WebSettings;
import android.webkit.WebView;
/**
* @author Jer
*
*/
public class OfflineWebView extends WebView {
private BroadcastReceiver receiver;
private IntentFilter filter;
private Context myContext;
public OfflineWebView(Context context,AttributeSet attrs) {
super(context, attrs);
WebSettings webSettings = this.getSettings();
webSettings.setJavaScriptEnabled(true);
myContext = context;
}//END CLASS CONSTRUCTTOR
/**
* @param internetOn The URL to display in this OfflineWebView when there is an active Internet connection.
* @param internetOff The URL to display in this OfflineWebView if there is no active Internet connection.
*/
public void setPages(final String internetOn, final String internetOff){
final OfflineWebView finalThisRef = this;
filter = new IntentFilter();
filter.addAction(SpendConstants.ANDROID_CONNECTIVITY_CHANGED);
receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager cm=(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if(cm.getActiveNetworkInfo()!=null&&cm.getActiveNetworkInfo().isConnected()){// TODO: THIS FAILES IF
finalThisRef.loadUrl(internetOn);
}else{
finalThisRef.loadUrl(internetOff);
}
}//END IF/ELSE
};
myContext.registerReceiver(receiver, filter);
}//END FUNCTION SETPAGES
public void startInternetMonitoring(){
myContext.registerReceiver(receiver, filter);
}//END METHOD STARTINTERNETMONITORING
public void stopInternetMonitoring(){
myContext.unregisterReceiver(receiver);
}//END METHOD STOPINTERNETMONITORING
}//END CLASS OfflineWebView
감사합니다.
당신도이 순간에 쓴 코드를 게시하시기 바랍니다. –
물론, 여기 수업이 있습니다 : –