Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class MainActivity extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- startService(new Intent(this, ServiceViewManager.class));
- setUI();
- }
- private void setUI()
- {
- LinearLayout layout = new LinearLayout(this);
- layout.setOrientation(LinearLayout.VERTICAL);
- layout.addView(createLoadUrlInvisible());
- layout.addView(createShowWebView());
- this.setContentView(layout);
- }
- private Button createLoadUrlInvisible()
- {
- Button button = new Button(this);
- button.setText("LoadUrlInvisible (Click first)");
- button.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- WebPageServiceView.instance().loadUrlInvisible();
- }
- });
- return button;
- }
- private Button createShowWebView()
- {
- Button button = new Button(this);
- button.setText("ShowWebView (Click second)");
- button.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- WebPageServiceView.instance().setVisibility(View.VISIBLE);
- }
- });
- return button;
- }
- }
- public class ServiceViewManager extends Service {
- private static ServiceViewManager inst = null;
- @Nullable
- @Override
- public IBinder onBind(Intent intent) {
- return null;
- }
- public static ServiceViewManager Instance()
- {
- return inst;
- }
- @Override
- public int onStartCommand(Intent intent, int flags, int startId) {
- super.onStartCommand(intent, flags, startId);
- inst = this;
- return START_NOT_STICKY;
- }
- @Override
- public void onCreate() {
- super.onCreate();
- }
- @Override
- public void onDestroy() {
- inst = null;
- super.onDestroy();
- }
- public void add(final View view, final WindowManager.LayoutParams params)
- {
- ((WindowManager)getSystemService(Service.WINDOW_SERVICE)).addView(view, params);
- }
- }
- public class WebPageServiceView extends FrameLayout {
- private static WebPageServiceView inst = null;
- public WebPageServiceView() {
- super(ServiceViewManager.Instance());
- }
- public static WebPageServiceView instance() {
- if(inst == null)
- inst = new WebPageServiceView();
- return inst;
- }
- private void addViewToService()
- {
- WindowManager.LayoutParams serviceParams = new WindowManager.LayoutParams();
- serviceParams.x = 0;
- serviceParams.y = 0;
- serviceParams.type = WindowManager.LayoutParams.TYPE_PHONE;
- serviceParams.flags = WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
- serviceParams.format = PixelFormat.TRANSPARENT;
- ServiceViewManager.Instance().add(this, serviceParams);
- }
- private void addWebViewAndLoadUrl()
- {
- WebView webView = new WebView(getContext());
- webView.loadUrl("http://naver.com");
- webView.setWebViewClient(new WebViewClient());
- this.addView(webView);
- }
- public void loadUrlInvisible() {
- addViewToService();
- addWebViewAndLoadUrl();
- setVisibility(INVISIBLE);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement