Android :: Pause Flash Content In WebView When Activity Isn't Visible?
Aug 7, 2010
I am experimenting with using a WebView to display Flash content inside my activity. Everything is working pretty well, but when the user hits the home key to put the activity into the background, the Flash content keeps running (sound keeps playing, etc)
I have noticed that both the stock Android browser and Dolphin Browser seem to avoid this problem, and properly pause the Flash content when the browsing activity is put into the background.
Ideally I would like a solution that kills the WebView completely if the activity is finishing, but pauses it otherwise (basically copying the default behavior of the browser)
Here is a simple test I put together that loads a game on Kongregate which has some background music:
CODE:..............
I took a look at the latest source for the stock browser, and it seems to be doing something similar (calling pauseTimers/resumeTimers), although I fear the code I have been looking at is out of date, because it is calling functions that don't seem to exist anymore.
I did verify that the call to pauseTimers is working by testing with a simple JavaScript setInterval which updates a counter. Is there something else obvious that I should be trying in regard to Window or View management?
The documentation for the mobile Flash player says:
Flash Player will also automatically pause SWF playback it is not in view or the foreground application, for example when a call is received or alarm goes off, to reduce CPU utilization, battery usage and memory usage.
This seems to be working perfectly in both the stock browser and Dolphin Browser, but not in my app. Any ideas/solutions would be greatly appreciated!
Update: Here is the function we ended up adding to our activity to get this to work. We call it with "onPause" in the activity's onPause function and "onResume" in the activity's onResume function:
CODE:....................
View 2 Replies
Apr 9, 2009
Step 1: I am subclassing WebView and rendering html content properly. The intial content is very small with a div and image /link This is displayed in a LInear Layout along with a TextView and ListView. That is my first screen/activity of the application.
Step 2: When I click on a link on this webview, it goes through the webViewclient and expands to full screen to fit the content of the requested page.
After Step 2, I am not able to go back to my activity screen once the content is displayed. When I click on the back button to getback to my activity screen close my activity and goes to the phone's applications desktop. (i.e goes out of my application).
Step 3: In order to fix this issue, I stopped setting my own subclasssed WebViewClient. After doing this, the it seems to render the clicked page in a webView as subactivity. Now When I click on backbutton, it goes back to the activity screen. But, the issue now is, I am not catch event when a link is clicked. How can I catch click events in this case.
View 2 Replies
View Related
Dec 27, 2009
Currently I'm working on a dialog which consists of title, description, tags and footer. The title can be long and in this case the text should automatically be displayed in multiple lines. The description is also longer and should fill multiple lines.
At the bottom of the dialog has to be the footer (also if the title and description don't fill whole screen).
I tried to do create the layout described about but had a problem with long text - if the content is long it doesn't display multiple lines but extends main view (LinearView) so the content extends over the visible area.
Here I'm pasting the print screen of the current state and the mockup of the desired layout:
TextView "Footer" and buttons OK and Cancel should appear at the bottom of the screen and the title ("Title Title Title...) and description text should automatically appear in multiple lines instead of extending the parent view.
View 2 Replies
View Related
Jul 15, 2009
Can anyone help me to understand how WebView decided which content it can render and which it can't? For example I am inside a webview select a link and if the link sends an XML file I want my application to handle to data instead of WebView, Is this possible?
View 4 Replies
View Related
Sep 9, 2009
I am trying to get the webview's content on a bitmap so that i can save it as a image. But I am unable to so. I am getting the BLACK image save instead. All content is missing. Here is my code:
//create a webview WebView w = new WebView(this);
//Loads the url w.loadUrl("http://www.yahoo.com");
//After loading completely, take its picture Picture picture = w.capturePicture();
//Create a new canvas Canvas mCanvas = new Canvas();
//Draw the Picture into the Canvas picture.draw(mCanvas);
//Create a Bitmap Bitmap sreenshot = Bitmap.createBitmap(picture.getWidth(), picture.getHeight(),Config.ARGB_8888);
//copy the content fron Canvas to Bitmap mCanvas.drawBitmap(mBitmapScreenshot, 0, 0, null);
//Save the Bitmap to local filesystem if(sreenshot != null) {
ByteArrayOutputStream mByteArrayOpStream = new ByteArrayOutputStream();
screenshot.compress(Bitmap.CompressFormat.JPEG, 90, mByteArrayOpStream);
try { fos = openFileOutput("yahoo.jpg", MODE_WORLD_WRITEABLE);
fos.write(mByteArrayOpStream.toByteArray()); fos.close();
} catch (FileNotFoundException e) { e.printStackTrace();
} catch (IOException e) { e.printStackTrace(); } }
View 7 Replies
View Related
Mar 23, 2010
Is there a way to get the current content of a WebView? What about Cookies for a specific host+url?
View 2 Replies
View Related
Nov 30, 2009
I see no means by which my activity can pop itself off the activity stack to return the user to the one he was using before it was invoked. Is there one? My purpose is that my app has some data structures built from data provider queries that take 5-15 seconds to assemble and I don't want a lot of latency if it is used in a few one-shot purposes in rapid succession. I'm more than willing to let the system ask my app to die, but I'd like to keep warmed and ready otherwise.
View 4 Replies
View Related
Jan 20, 2009
How to pause and resume the activity?
View 3 Replies
View Related
Oct 12, 2009
I am trying to create a hybrid Android app which pulls HTML content from a web server and renders it in a WebView. However, I also want the external HTML to be able to reference images that are packaged within the android app. I realize that currently it is not possible to do something like <img src="file:///my_image.jpg" /> in the HTML. I have seen discussions of using the ContentProvider to create name spaces in the html, however all of these examples seem to assume that the actual html page is also on the device and tend to use WebView.loadData(). So, is there someway that it is possible to do this? The main goal is to package all the application images/css in the android app, but put the bulk of the application on an external server that returns the actual markup.
View 2 Replies
View Related
Oct 18, 2009
When I place a Webview control in the content of a Tab, it is taking over the entire display! I have jacked around with the layout but I can't figure out how to "fit" the control on the tab. Is it possible to do this?
View 6 Replies
View Related
Feb 10, 2009
It's easy to get current page's url and title of webkit.WebView. But I could not find way to get page content of WebView.
View 6 Replies
View Related
Oct 5, 2010
I tried WebView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); but view crashed in 1.6 OS. I calculate scale(webview.capturePicture()) but I cannot set it after page loaded. Is it any working solution for fitting webview content to display (1.6 OS)?
View 2 Replies
View Related
Jan 2, 2010
Is it possible to Load a URL in a webView and resize it to fit the screen. I mean I want to make the WebPage small so that the user doesn't need to scroll.
View 10 Replies
View Related
Oct 7, 2010
I have Java and plugins enabled. Why I can play many online flash videos in my webview, but nothing on m.youtube.com works? I would be more than satisfied with a workaround that passes the video to the YouTube application.
View 2 Replies
View Related
Oct 31, 2010
Using WebViewClient and/or the WebChromeClient you can get a listener for when the page has loaded, however this is sometimes called before the WebView has any content in it, before it has displayed anything. What would be a efficient method for determining when the WebView has displayed it's content? When I load a page in a WebView, I want to set the scroll to a specific position. It seems that the scroll position cannot be set until the page is loaded and it has an actual content height. So, I have tried two different approaches to determining when the page has finished loading, onPageFinished() from the WebViewClient and also onProgressChanged() from the WebChromeClient.
Both of these tell me when the page has finished loading. However, the problem is that sometimes it is called before the page has been displayed and therefore the page has no height and the scroll call does nothing. I am trying to find a solid way to determine when the page is ready to be scrolled, i.e. when it has its content height. I imagine I could setup a checking loop after it finished loading to keep looking for when the height is available but that seemed like quite the hack. Hoping there is a cleaner way.
View 2 Replies
View Related
Mar 6, 2009
I've got a WebView, and in its content is a phone number. I hightlight it and click - voila, taken to the phone app.
Now, all I do is add this code:
CODE:........
clicks no longer work.
View 4 Replies
View Related
Jun 9, 2010
I have* two activities*,
*1st one* has a ques and 4 options.
*2nd one* is like a result page (... displaying if your ans is correct or not ...and showing the right ans ..)
Now what i want is when a user clicks :
on a right option [or wrong option] ..i want to turn that Image button into green [ red] .*.and wait for a while* ..and then go to the result activity ..
*so my only concern is onclick of a ImageButton ... how to wait for a while .. and then move to other activity* * * any kind of suggestion will do ..
View 4 Replies
View Related
Aug 18, 2010
I have one query. In Home Application the timer is running and if any ANR or Alert or Notify come then this home activity would go in Pause state but timer is running and visible. How it is happening. Can anybody explain me how this work.
View 4 Replies
View Related
May 11, 2010
I'm start a new Activity B from Activity A, and find launch Activiy B is very slow, cost over 3000 Milliseconds, and when i click "back" to Activity A, then i found this log below:
CODE:....................
Activity B only contains a ListView with CursorAdapter.
Any idea how does this happen? this performance is unacceptable.
View 2 Replies
View Related
Jun 14, 2010
Suppose i have a program that' s currently in a PAUSED state. Then the user launches another activity. In this second one, i want to find if the first one is in paused state or not because, if its paused, i want to recover it.
Is there a way to find if a specific activity is in pause state or not?
View 6 Replies
View Related
Jun 17, 2010
How can I know the visible size of my activity? I'm trying to get the Activity real size, not the height and width from getHeight() and getWidth(),which gives me the screen full size.
View 2 Replies
View Related
Mar 12, 2010
I am getting some HTML text from a remote server which I am displaying inside a WebView. I need to format the text display and set a font size and color for the WebView. The only way I can think of is: pre-pending the HTML string received with a tag and specify the font information there. What is the correct way to do this?
View 1 Replies
View Related
Nov 8, 2010
I would like to implement an apps that allow users save the webpage including images. Then the users can view the web page again even there is no network access. However, I found that there is no such related API to do so.
View 3 Replies
View Related
Nov 8, 2010
My code:
WebView webView = new WebView(this); webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("http://www.preisjaeger.at"); setContentView(webView);
The site the I downloaded appears on the Webview, but only the content for mobile devices. How to deactivate the mobile content?
View 1 Replies
View Related
Nov 15, 2010
I am using the webview control in android to show the html content. But I face a problem that in webview I have to fix the height so thats why if html content contains less data then it wasted the space. Is there any solution to solve this problem that how can I show only same content as html has in the webview without any wasted space please help. following xml i used to draw webview is this right? In this i give fix height to webview. if i am not giving fix height then it will show only 1 line data with scroll.
CODE:.....................
View 1 Replies
View Related
Sep 10, 2009
Just wondering is it necessary to close cursor when an activity is stopped or pause?
View 5 Replies
View Related
Apr 8, 2009
My application generates an HTML file which needs to be displayed to the user . For this purpose I'm using the loadData() API provided by Webview. This HTML file is updated every 2 secs & the same is loaded again using loadData() to display the updated values. On reloading the file the Webview starts displaying again from the top of the file causing the user to always scroll down to the location where he previously was. This causes a very bad user experience. To overcome this issue an alternative that I could think of was to split the file to multiple files that can exactly fit in the the screen. For this I need to find the height of the HTML content that can loaded in a web view. From the WebView documentation I found that an API getContentHeight() is provided for this purpose. Although this method returns me 0 on the first attempt. On subsequent attempt it gives me the height of the page that was previously loaded.
View 3 Replies
View Related
May 5, 2010
I am trying to add an HTML content to a web view. If the words in the HTML content are without spaces then webview keeps that particular word on the same line.I want that content to be wrapped and be on the next line.Is it possible to do that.I am attaching a sample code that can reproduce the issue.
View 1 Replies
View Related
Oct 14, 2010
Is there any possibility to assign WebView text content to ordinary String variable?if it so.
View 1 Replies
View Related
Jun 30, 2010
I'm trying to write a game engine in Android, but I don't have much familiarity with threads.
My thread has an attribute, mSurfaceHolder, which holds the surface that I'll be drawing to. The run() method for my thread looks like this:
CODE:.............
STATE_RUNNING represents the state when the activity is in the foreground and the game should be running.
STATE_PAUSED represents the state when another activity has come into the foreground. I'm not completely sure why I need to still draw while it's paused, but that's what I seem to have gathered from the LunarLander example.
What I'm hoping is that while I'm looking at the activity, the game will update and draw (which I test by using LogCat). And then when I go back to the home screen or another activity appears over the top, it will just draw.
Well it does draw and update while I'm watching the activity, so the game loop itself works. But when I leave the activity, it has no effect. Here is the thread's pause() method that is called from the activity's onPause():
CODE:.............
As you can see, to test this method I have logged some messages. Now what I find when I leave the activity is that "Here" is logged, but "There" is not. Now with my limited knowledge of threads (I hardly know what synchronized actually does), I believe this will happen because my thread can't get synchronized with the surface holder. But I don't know WHY it doesn't synchronize. A few seconds after I've left the activity, I see the following warning in LogCat:
Activity pause timeout for HistoryRecord
Any idea why this would happen? There are no problems if I try to start the activity again, the thread just keeps running as it was.
Just discovered something else. The thread pauses just fine if I leave the activity within about a second of having started it. And then it will resume and pause again with no problems at all while the same task is still running. I have no idea why for a short period of time it will work, but if I leave it too long, it won't.
Okay... I fixed it. But I don't think I'm supposed to do what I've done. I've basically removed any synchronization with mSurfaceHolder from both the pause() and the setState() methods (which is used by pause()). No it works as it's supposed to, but I'm thinking the synchronization is there for a reason.
Perhaps the best question for me to ask is this: WHEN should you synchronize a thread with an object by use of a synchronized block? And in this case, what is the purpose of synchronizing with the SurfaceHolder?
View 1 Replies
View Related