General :: How To Change Main UI Thread Priority
Apr 26, 2012I read somewhere that iPhone UI is so smooth because the thread which renders the UI has the REALTIME priority... so is that possible to mod android's UI thread priority?
View 2 RepliesI read somewhere that iPhone UI is so smooth because the thread which renders the UI has the REALTIME priority... so is that possible to mod android's UI thread priority?
View 2 RepliesI was define a new thread for a task, but when task is complete, I must to refresh my listview, however I will get the error for just can use main thread to change view,
View 5 Replies View RelatedI am writing an application in which i need to handle messages between the main thread(the deafult UI related thread) and the user created Gamethread.
The requirement is like this.
An activity(say "Activity_X") is setting the view by "setContentView(some "View_Y")". In "Activity_X" i have implemeted "onCreateOptionsMenu()" and "onOptionsItemSelected()" fucntions for creating menus & a switch case for action to be taken on selecting those menus.Menu has items like "resume/pause/zoom/" .
All action to be take on selecting these menus are implemented in "View_Y" in a separate Gamethread by extending "Thread" class.
So whenever a menu is selected in "Activity_X" i need to send a message to "View_Y". And on receiving this ,a particular action/method should be called in View_Y(GameThread).
How can i achieve this using Handlers?Is there any other way of doing this? Please do share with me some code snippets for these.
I have two apps that use a service to upload and download files and data. I've noticed that when the service gets very busy, it can cause the UI to block, up to the point that Android shows a "force quit/ wait" popup. In order to avoid that, I run tasks in a service at a lower priority. This way, the service will never cause the UI to hickup. Also, the service stops if the app hasn't been used for a certain number of minutes. I don't want to keep resources if the user isn't using my app.I have found that some of my users run apps that run services permanently at normal priority. Such a service starts at phone switch on, and keeps running indefinitely, downloading vast amounts of data. My policy of being nice to other apps doesn't pay off: these agressive third party services push my service away so it never gets anything done. As one of my users told me, my app has hickups, until he kills the service of this app X, after which my app runs smoothly, snappy, and fast.
My question is, should I be nice to other apps and to the UI in my own app, or should I just run a service and agressively take all resources I need - or don't need? This is one issue where Android is different from iPhone. We can run services, but by doing so, we can cause damage to other peoples apps. Of course, my "question" doesn't require an answer. I'm just curious after what other people think, what your experience here is.
I have a separate thread running to get data from the internet. After that, I would like to update the ListView in the main thread by calling adapter.notifyDataSetChanged(). But it does not work. Any workaround for that?
View 1 Replies View RelatedI am programming a game with fast graphics. The MediaPlayer is stuttering sometimes. When I have the MediaPlayer in a service, it does not stutter, but some people here adviced me not to use services if they should stop automatically when the user ends my application. So how can I set the thread-priority of the MediaPlayer-Object? SoundPool uses the MediaPlayer and with SoundPool, you can set the thread-priority, but I cannot add my audio-file to SoundPool, because its size is about 2mb (too big for SoundPool). I can lower my main-thread-priority so that the MediaPlayer has a relatively higher priority, but isn't this a bad idea?
View 2 Replies View RelatedI have a multithreaded streaming app which has mainly the following 5 threads. 1 Main App(UI) Thread 1 controller thread (in native) 1 audio decoder thread (in native) 1 video decoder thread(in native) 1 thread to query the head position of audio (in Java) Apart from this I have video rendering with OpenGL. My problem is, if I query the thread priority using the Thread.getPriority method (my native threads make callbacks to Java and I am making the query at that point of time), I am getting the priority of each of them as 5. For my audio query thread (the last one in the list) I am explicitly setting the priority using Process.setThreadPriority(Process.THREAD_PRIORITY_URGENT_AUDIO); Also for my decoder threads, I am giving higher priority than my controller thread(using pthread APIs in native). But still finally all of them seem to have same priority. Also what should I be doing to increase the priority of my threads(both from Java and native)?
View 6 Replies View RelatedThe Android doc says "Like activities and the other components, services run in the main thread of the application process." Is the main thread here the same thing as UI thread?
View 3 Replies View RelatedI am trying to connect to a database, and I understand that it has to be outside of the main thread but i thought that this is what my code was doing...apparently not because i keep getting the error: android.os.NetworkOnMainThreadException.
package com.example.dbtesting;
import java.sql.*;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
[code]....
Are the UI threads for each Activity and Service in an app separate threads, or is there actually 1 underlying UI thread per app that processes the UI message queue for each Activity and Service?
View 2 Replies View RelatedI have developed a music player and the application defines a broadcast receiver that handles MediaButton intents:
<application...>
<receiver android:name="MediaButtonIntentReceiver"> <intent-filter android:priority="32000"> <action android:name="android.intent.action.MEDIA_BUTTON"/> </intent-filter> </receiver>
</application>
which works well. My question is if it was possible to change the priority of this receiver from within the settings activity of my application. That way people could choose if they wanted my player as default handler of the headset buttons or not.
Can someone advise the am command (for adb shell) to run junit tests in the main thread please? The following shows onStart etc running in the test runner thread. am instrument -w -e class co.uk.telesense. tests.MyTest co.uk.telesense.tests/android.test.InstrumentationTestRunner Ewan Benfield ttp://www.telesense.co .uk tel: 0845 643 5691 (+44 845 643 5691) mob: +44 (0) 77859 26477
View 2 Replies View RelatedThere are a lot of Android SDK APIs where callback handlers are registered. For a concrete example, with MediaPlayer you can set an onCompletionListener callback. Will these callbacks be called from the main (UI) thread? If the answer is "it depends", then I'm looking for some general rules for what callbacks will be called from the main thread versus another thread. The SDK documentation doesn't seem to spell it out. (Maybe I missed it) It seems important to know, because if I'm guaranteed main thread callbacks, then I can skip some thread synchronization on data shared between different places in code. If I'm forced to be pessimistic out of ignorance, then I have to write extra synch block code and worry about deadlocks, data integrity, and reduced performance.
View 4 Replies View RelatedSay that a user clicks on a Button. Is the resulting onClick() function invoked on the main UI thread of the activity?
View 1 Replies View Relatedhow can i change the main icon on my statue bar i tried the xtheme engine and other xposed apps but it changes only the wifi and the battry and other things ... i am locking for change my signals icons .. .i have dous phone i want to change them both .. is there any way to change them and is there a tweek to remove the sim icon ?
View 2 Replies View RelatedIs there any way to change the priority in what picture gets displayed for the contacts? I have most of my contacts in Outlook via. Exchange, G-mail and facebook. I would like the picture to change along with their facebook picture but it seems to stay the pict i have in gmail or outlook. Is there a way to have it always show the facebook picture first and then if they arent a facebook contact fall back to the g-mail or outlook picture?
View 4 Replies View RelatedI want to cancel a Toast to show the next one. This is the description of the behavious I want, when I select one element in the menu i display a toast from the actuel menu element, but if i switch from one element to an other quickly i'm creating a list of Toast to display. So i need to cancel the previous one but i never succed. This is an extract of my code: public class MainActivity extends TabActivity
private Toast toast; private String toastMsg;
private void toast(){ if(toast!=null){ toast.cancel(); } toast = Toast.makeText(MainActivity.this, toastMsg,Toast.LENGTH_SHORT);
toast.show(); } }
I try to make several connection in a class and update the multiple progressbar in the main screen. But I've got the following error trying to use thread in android : Code: 05-06 13:13:11.092: ERROR/ConnectionManager(22854): ERROR:Can't create handler inside thread that has not called Looper.prepare() Here is a small part of my code in the main Activity.
public class Act_Main extends ListActivity
{ private ConnectionManager cm;
public void onCreate(Bundle savedInstanceState)
{ super.onCreate(savedInstanceState);
// Set up the window layout
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title); }
public void startConnection() { ......
Curious to know the reason behind not allowing updating UI elements from background thread in Android. Will main thread does something more (probably interacting with framework) after updating the UI elements so that changes can be seen on the screen? Is it the same case with other GUI tool kits?
View 1 Replies View RelatedHi, I've noticed that on android, the call to pthread_join does not suspend the calling thread. I've a number (6) of new thread created using pthread_create and pthread_join is called on each thread. But It does not suspend the main (calling) thread. I believe this relates to the port of pthread lib to android.
View 2 Replies View RelatedAre we guaranteed that Application.onCreate() runs in the UI/main thread? I want to assume so but I can't find any information to make me 100 % sure. When I receive a broadcast I want to post a message onto the UI/main thread. Currently I've added a function in my Application class to return a handler (created in it's onCreate), is this a good solution? If not, what would be a better solution?
View 3 Replies View RelatedMy purpose is very simple : each 1second, I want to redraw an object on different place on background. I do not know where my error on this code below. Here is my code:
public class My_View extends View{ private Bitmap mBackground_img;
private Drawable mMoveObject; private int mObjectw,mObjecth; private int Dx,Dy;
private Handler myHandler = new Handler(); private long lasttime;
public My_View(Context context,AttributeSet ats,int ds) {
super(context,ats,ds); init(context);
} public My_View(Context context,AttributeSet ats) { super(context,ats);
init(context); } public My_View(Context context) { super(context);
init(context); } public void change() { invalidate();
} private void init(Context context) {
Resources res = context.getResources();
mMoveObject = res.getDrawable (R.drawable.lander_firing);
mBackground_img = BitmapFactory.decodeResource(res, R.drawable.my_pic);
mObjectw = mMoveObject.getIntrinsicWidth();
mObjecth = mMoveObject.getIntrinsicHeight();
Dx = Dy = 0; lasttime = System.currentTimeMillis() + 1000;
Thread mthread = new Thread(null,doBackground,"Background");
mthread.start(); } private Runnable doBackground = new Runnable() {
public void run() { long now = System.currentTimeMillis();
if(lasttime < now ) { Dx = Dx + 10; Dy = Dy + 10;
lasttime = now + 1000; myHandler.post(change_view);
} } }; private Runnable change_view = new Runnable() {
public void run() { change();
} };
@Override public void onDraw(Canvas canvas) {
canvas.drawBitmap(mBackground_img,0 ,0 , null);
mMoveObject.setBounds(Dx, Dy, Dx+mObjectw, Dy+mObjecth);
mMoveObject.draw(canvas);
} }
I am trying to start an error-reporting activty if unhandled exception detected. The problem is with exceptions thrown from main thread. Is there any way to start an activity if main thread crashed?
View 3 Replies View RelatedI have an app with a two threads - main and data loader. When data loader finishes it posts a Runnable object to the main thread (as described in the DevGuide), but it never gets delivered and run. Here's the basic code:
class MyApp extends Application{
public void onCreate()
{LoaderThread t = new LoaderThread();
t.start(); }
private class LoaderThread extends Thread {
public void run()
{ SystemClock.sleep(2000);
boolean res = m_handler.post(m_runnable);
if(res)
Log.d(TAG, "Posted Runnable"); } ............
In my game when the user completes a stage, I want the main game thread to pause/sleep/wait and a new activity to be launched called StageClear that displays information about points scored etc. After this has been displayed and the user has pressed continue I want the original game thread to resume where it left off. I have tried to implement this but have so far been unsuccessful, probably because I'm new to dealing with multiple threads and also the idea of synchronizing them. I most recently tried to implement a shared package-visible object that could notify after wait was called on itself, but I am getting errors in eclipse so it won't even compile, I think because though the object is declared public in an inner class, it cannot be seen or recognised by my activity elsewhere in a file in the package. I have already built both activities but my issue is getting the main game one to launch the other, and pause whilst it waits for this activity to finish, before the main game thread continues execution.
View 1 Replies View RelatedHow would I force the current thread to wait until another has finished before continuing. In my program the user selects a MODE from an AlertDialog, I want to halt executing of the program before continuing as the mode holds important configuration for the gameplay.
new AlertDialog.Builder(this)
.setItems(R.array.game_modes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case 0:
setMode(TRAINING_MODE);
case 1:
setMode(QUIZ_MODE);
default:
setMode(TRAINING_MODE);
break; ............
//continue loading the rest of onCreate();
contineOnCreate(); } })
.create().show();
If this is impossible can anyone give a possible solution?
Since I got the original 2.2 update for my Droid, whenever I get a new text message and slide down the notification bar and select the new message, it takes me to the main text message window rather than the actual thread to reply to the person. It is really annoying because it requires an extra step. I figured it would be fixed with the second 2.2 update but it didn't. I called Verizon and they called Motorola and nobody knew of the problem so they shipped me out a new phone and it still does it! I am not sure if I am the only one experiencing this or if its normal. It doesn't do it 100% of the time but closer to 90% probably.
View 1 Replies View RelatedI have two email addresses for a particular contact. One is to email their phone and the other is the real email address. I want keep them as separate Google contact entries.But the problem is that the name that the linking software has chosen to represent the account is the one for the SMS-email (e.g. "Bob Smith SMS Email").I want the name that I see in various contact lists to just be "Bob Smith".The thing is that the account with the normal email and phone number is the one set as the default, so I know the Droid is not picking up the name of the default account and using it as the "main" name.I remember once, when I was linking and unlinking accounts, that it asked me what name to use as the main name.But I can't figure out how to get back to that.
View 4 Replies View RelatedI think I already know the answer to this, but I just wanted to confirm (I think no horrible ramifications)...
View 5 Replies View RelatedSo there are a few apps which I want staying in memory. I.E. I don't want Android to kill it. Is there such an app that can do this and if not, is there a script? I believe Super Charger? If Super Charger, how do I use it?
To summarize, I want a few apps (the phone, the messaging, true caller, and ex dialer) to get highest priority/never die.
Is this possible?