Android : Using Method From A Service In An Activity?
Feb 16, 2010I have the folowing method in a Service in my appplication: Code... Do I have to do an AIDL or is there a simpler way?
View 2 RepliesI have the folowing method in a Service in my appplication: Code... Do I have to do an AIDL or is there a simpler way?
View 2 RepliesI came to this issue : I created a layout with only 1 ImageButton and it works as expected when loaded from Activity (using setContentView) : The button is changing background on touch down event (orange) But not changing when the same layout is loaded by the InputMethodService (but it react to onClickEvent if used ) Here is a minimal project and video if you need to reproduce : http://rzr.online.fr/tmp/rzr-test-android-imf-0.0.20090520.tar.gz
View 4 Replies View RelatedI am trying to call my service class's stopService() method from my activity. But I don't know how to access stopservice method from my activity class. I have the below code but its not working. This is HomeScreen class:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
enablecheck = (CheckBox)findViewById(R.id.enablecheck);
enablecheck.setOnCheckedChangeListener(new OnCheckedChangeListener(){
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
if(enablecheck.isChecked()){
startService(new Intent(HomeScreen.this, AutoService.class));
} else {
stopService(new Intent(HomeScreen.this, AutoService.class));
} } });
}
This is Service Class:
public class AutoService extends Service {
private static final String TAG = "AutoService";
private Timer timer;
private TimerTask task;
@Override
public IBinder onBind(Intent intent) {
return null;
} @Override
public void onCreate() {
Toast.makeText(this, "Auto Service Created", Toast.LENGTH_LONG).show();
Log.d(TAG, "onCreate");
int delay = 5000; // delay for 5 sec.
int period = 5000; // repeat every sec.
timer = new Timer();
timer.scheduleAtFixedRate(task = new TimerTask(){
public void run() {
System.out.println("done");
} }, delay, period);
}
@Override
public boolean stopService(Intent name) {
// TODO Auto-generated method stub
timer.cancel();
task.cancel();
return super.stopService(name);
} }
I have an activity A which uses SharedPreferences to share data with a service S, which is called from within A.Now when I call the stopService() method from A, the onDestroy() method in S is not called immediately.I thought that all the activities and services under a single apk run in just one process. Why then does the jump to onDestroy() not take place immediately instead I can see the output from onDestroy() after the further code in the activity A is executed.
View 5 Replies View RelatedI've configured local service under some app i wanna know how could i invoke methods on the activity, through the service in a synchronous way for example the service invoke a method inthe activity and waiting for for result(synchronous) from it.
View 2 Replies View RelatedI'm confused why is my activity still lagging, I use remote service that has few methods and each has its own work like download stuff, process data, compare stuff, etc... It will run in background and update data at selected intervals and notify user of changes over notify system.
The reason why remote service, because I will eventually add a widget, and service needs to stay running even if android kills the activity, so I unbind it on each onPause().
But as far I understand that part doesn't cause my issue.
But back to my problem... so my is Activity still lagging when I run stuff in service and handler.post method.
here is the code...
Also I wanted to add progressDialog to be updated in updateLayer(...) through Activity is a listener to this service, but thats not working well. Whats the best way to update progressDialog? Ever listener, handler, intent, or what?
So how do I do this correctly?
Whenever the memory needs to be reclaimed, the process is being killed by Activity Manager Service in killPidsForProcess. I have a back button in my activity window on right corner of the title bar.
I want to kill the activity completely on clicking the close button. Can I reuse the same function and will it have any major effect? Please help me out in this.
This is the class that calls my Service:
public class TicketList extends ListActivity {
private ArrayList<Tickets> alTickets = new ArrayList<Tickets>();
private boolean listCreated = false;
private static Drawable background = null;
private Resources res;
private Tickets ticket = null;
private TicketConnector localService;
[Code]
Here is the output of LogCat at verbose mode while activating the TicketList Activity:
09-28 23:22:11.420: INFO/ActivityManager(795): Starting activity: Intent { cmp=org.mw88.cmdb/.gui.TicketListActivity }
09-28 23:22:12.340: WARN/ActivityManager(795): Binding with unknown activity: android.os.BinderProxy@4410bf30
09-28 23:22:16.090: INFO/ActivityManager(795): Displayed activity org.mw88.cmdb/.gui.TicketListActivity: 4606 ms (total 4606 ms)
I'm pretty sure that android services are going to be the end of me.I have almost no hair left after the last few days.At first I was having a heck of a time getting the service to bind on an onclick of a button, got that straightened out from help here yesterday. Now I actually want the service to bind in the onCreate() method of the activity. That part is no problem, works as intended.My service is actually a socket service to connect TCP sockets to a socket server that I wrote.If I put the call to the method from the bound service mBoundService.StartSocketServer() inside a button click, bingo, works great. But I need this to fire up immediately when the activity loads, so directly under my bindService() call within my onCreate() method of the activity.When I place the call to start the socket inside my onCreate() I get a force-close.
This method (StartSocketServer()) spawns a new thread then opens the socket on that thread to my remote machine.I'm guessing that the problem lies with the new thread generation before the activity fully loads not sure.LogCat is fairly cryptic here. It does say something about thread attach failed, then shows an uncaught handler exception that has "Caused by: java.lang.NullPointerException" within it.Again, if I put this call to the method inside a button click, I"m in business, if it's in the onCreate() it fails. Is there some way inside an activity (presuming that my assumption is correct that it needs to fully load before spawning a new thread) to call the StartSocketServer() after it's loaded: ala body.onLoad() in html?
I need to made an activity (without layout) that on start check if a service is running. if it is true it starts Activity2, if it false it starts Activity1.
I tried with this code:
CODE:............
Enter code here
But when I check, in the onCreate method, if serviceConnect!=null I receive sometime a NullPointerExcption.
I tried also to insert the operation in the method onCreate in an Async Task:
CODE:............
I'm trying to implement an input method service that receives intents sent by a remote client, and in response to those sends an appropriate KeyEvent. Is there any way to send keys and control the device like using the hardware keys from an input method?
View 2 Replies View RelatedThe problem seems to be that the Service class does not inherit the > findViewById() method.
View 3 Replies View RelatedI've seen topics discussing this but no one has seemed to post a solution. At the moment, I'm testing passing parameters to my .Net web service. When the parameters reach the web service it adds it with an additional string then returns it too my application; but all I'm returning is the string message, not the parameter I passed. Is there something wrong with my web service or my soap method?
Soap:
CODE:..........
Here is my simple .Net web service:
CODE:..............
I have a java class Poker.java and an Activity .GameWindow in GameWindow.Java. In the GameWindow activity i have a method...
View 2 Replies View RelatedThe Activity class has a setContentView() method. The PopupWindow Class has a getContentView() method but nothing else does. Is there another way to get the main content view for an activity?
View 2 Replies View RelatedI am trying to execute a {public void} method in Service, from scheduled TimerTask which is periodically executing.This TimerTask periodically checks a condition. If it's true, it calls method via {className}.{methodName};However, as Java requires, the method needs to be {pubic static} method, if I want to use {className} with {.dot}.The problem is this method is for notification using Toast(Android pop-up notification) and Status Bar.But for this to work, the method must not have {static} modifier and resides in Service class.So, basically, I want background Service to evaluate condition from scheduled TimerTask, and execute a method in Service class.Can anyone help me what's the right way to use Service, invoking a method when certain condition is satisfied while looping evaluation?
View 1 Replies View RelatedCan i call method of Listactivity from Activity class? I have creates Intent object of myListActivity class and called startIntent() from myActivity class.
View 3 Replies View RelatedI have a webview and when I do some java-script processing on it. I click on a link to play a video, after the video finishes in full screen. I want to return to my webpage in the same state I left it before clicking to play the video. How can I do it? Any snippets?
View 1 Replies View RelatedI am encountering an exception in the onCreate method of an activity.
CODE:.......
The onCreate method is as below.
CODE:......
The layout view XML is as below.
CODE:..........
I've already changed the ID of the ExpandableListView to "list". But it is not effective.
I have following problem: I have my "MainActivity". In this Activity, i start a thread (SaxParser in another "normal" java file). Now I want to call a method from the MainActivity out of the normal java file? I have read something of an Application object, but i only find things, where i have to create a new Intent. Is it possible to use the application object in the other "normal" java file like that: Code...
View 5 Replies View RelatedI have a tab widget where one of the tabs is a chat-type feature. I want to update the chat data at an interval (variable depending on whether the chat tab is active or not).
The best approach seemed to be using an AsyncTask in my main TabActivity class, as that would avoid any issues of the chat activity being destroyed while in the background, while an AsyncTask was running. I wanted to ensure that the Activity isn't destroyed and recreated, thus causing my AsyncTask to be unable to modify the actual active Activity's data.
However, now that my AsyncTask is in the TabActivity activity, I don't have a direct way to call my Chat's ListAdapter notifyDataSetChanged() from my onPostExecute() method anymore. Is there a way to get a reference to a given Tab's current Activity from the TabHost/TabActivity?
Or, alternatively, can I assume my chat activity will never be destroyed as a child activity of the TabActivity activity (well, never destroyed while the TabActivity is active at least), and then just put the AsyncTask in the Chat Activity?
I would like to access the public method of an Activity run by a TabActivity using: Code...
Basically, what I what is to let the parent Activity call a method in child Activity in order to do something. Is this possible?
I did try this:((TeamHuddleScreenMsgsView)getTabHost().getCurrentTabView().getContext()).refreshModel(); but I'm encountering a ClassCastException. It seems that the getContext() still gives the TabActivity. Any help on how to get the child Activity?
I've got the following Button declared in my main.xml And I have the following methods in the activity. Code...
View 1 Replies View RelatedI am trying to get a UI to present itself when an incoming SMS happens. When that happens, I would like to present a UI to the user.
I have a BroadcastReceiver class that listens to the SMS_RECEIVED event. I also have an Activity class that is capable of displaying the needed UI when the event happens.
The questions is: How do I start the activity from within the onReceive method of BroadcastReceiver?
I know others have done this but I can't seem to find any resources that illustrates how.
A TabActivity start other activity when i click on a tab,
How to send information to parent (tabActivity) and don't finish current activity?
My tabactivity start another activity like this :
CODE:............
Inside my new Activity Option, i would like to Call method of Tabactivity, is it possible ?
I use Microsoft Outlook 2007 as my MAIN email and calendaring software. I will be accessing my mail and calendar via Outlook on my office PC for the vast majority of time.
My main email accounts are currently configured as POP3 but are also configured to leave copies of messages on the server for 30 days, which allows me to check new messages via my ISPs webmail when out of the office.
I have considered changing to IMAP for my main email account but have purposely avoided it up to now as I have a huge number of mail folders and messages my Outlook pst file is currently 7.2GB. A lot of those are for archive reference and I dont need to see them on other devices BUT, as I understand it, IMAP does not let me only select certain folders to mirror and sync between different devices (it must sync all of them) so I feel it would be unwieldy to use IMAP on my account. (If anyone knows of a way to set IMAP to only include specific folders please let me know!).
I do have a Google Mail account already, but rarely use it its just there as a back-up account. I�ve NOT as yet imported my Outlook contacts or calendar into my Google account.
Now I know that I can use HTC Sync to sync up my Contacts and Calendar, but what I�ve read suggests that the phone works best when you sync it with your Google account. I COULD of course import my Outlook Contacts and Calendar into my Google account, and I COULD also use my Gmail account to check mail from my main POP3 accounts. However, Im unsure about going down that route as Im worried that might confuse things, cause conflicts, or cause double-work for me when I update my contacts or calendar from Outlook or from Google. Are there possible problems with going down that route?
Secondly, Im very intrigued to have read that Gmail is more efficient for the phone as Ive read it works as a push email service. That is, I dont need to check my mail by doing a send/receive from my phone either manually or automatically at set intervals, but that Gmail will just automatically PUSH new emails to my phone as soon as they arrive. Is that correct?
If it is correct it sounds good, but does that mean my phone must be or will be permanently connected to the net? As I don�t use my mobile that much Im on a Pay-As You-Go service so need to ensure my phone is ONLY connecting to a data connection when I need it to. Will I be able to work-around this?
I know HTC Sync doesn't transfer Outlook Notes or Tasks. Has anyone found, or can recommend, an app that will do that for me?
I have an activity which overrides the onKeyDown method. The documentation states the following about onKeyDown: "Called when a key was pressed down and not handled by any of the views inside of the activity." The problem I have is that this method is being called even when the views inside the activity handle it. I have a button implementing a longPress listener. What I see on debugger when long clicking on the button with the center key is that first onKeyDown from the activity is called then the longPress listener from the button gets triggered. Even for Textviews, when long clicking on it with the center select, the activity onKeyDown gets triggered before the TextView processes the longclick (and shows the Input Method context menu).
View 5 Replies View RelatedCan anybody tell me what method of an activity executes when an application closes?. Like I have a main activity and if I press back button on my phone. The Application closes so I want to know what method executes at that time.
View 1 Replies View RelatedI've been searching a way to implement an intent so when a user clicks on a notification, an specific method from an activity is executed (or an specific behavior happens). Right now I'm thinking about using broadcast but I don't know if this is the best way to implement this functionality. How would you implement it?
View 6 Replies View RelatedIn my program I have a custom view object. Inside the view class is a method called foo. For some reason when I call foo from my activity, it doesn't fire. Here is the code:
XML of the custom view:
<com.company.application.MyView android:id="@+id/my_view" android:layout_width="wrap_content" android:layout_height="wrap_content" />
The activity code:
public class Main extends Activity { MyView mView;
/** Called when the activity is first created. */
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); setContentView(R.layout.main);
LayoutInflater li = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = li.inflate(R.layout.main, null); mView= (MyView) v.findViewById(R.id.my_view);
//A button to fire the method inside foo() Button switchLeft = (Button) findViewById(R.id.switch_left); switchLeft.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { callTest(); } } );
} public void callTest() { Log.w(this.getClass().getName(), "clicked left arrow");
mView.foo(); mView.postInvalidate();
} }
Finally here is foo:
public void foo() { mBackground = mContext.getResources().getDrawable(R.drawable.temp_canvas); Log.w(this.getClass().getName(), "background set");
}
The first log is always written when the button is pressed, but the second log is not because foo never fires. What is the deal here? Upon request, the full view
public class MyView extends View { Drawable mBackground; Context mContext;
public MyView (Context context) { super(context); mContext = context;
mBackground = mContext.getResources().getDrawable(R.drawable.leftarrow1);
} public MyView (Context context, AttributeSet attrs) {
super(context, attrs); mContext = context;
mBackground = mContext.getResources().getDrawable(R.drawable.leftarrow1);
} public void foo() { mBackground = mContext.getResources().getDrawable(R.drawable.temp_canvas);
Log.w(this.getClass().getName(), "background set"); }
@Override public void onDraw(Canvas canvas) { Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL); // draw a solid blue circle
paint.setColor(Color.BLUE); canvas.drawCircle(20, 20, 15, paint);
// draw a test background mBackground.setBounds(0, 0, 300, 400);
mBackground.draw(canvas); }
}