Jackie,
I already gave you one suggestion, it had to do with
"AndroidServiceImpl.class".
Here is another:
If inner classes are a new thing to you, don't use one, they can be
confusing at first.
Make a method in your Service class proper, call it from inside
AndroidServiceImpl, and then you're back inside your service class, and
on sample code territory.
Also, using a non-static inner class for the binder (like you are doing)
causes a memory leak. Here is someone's very nice blog post explaining
why this happens and what to do about it:
http://www.ozdroid.com/#!BLOG/2010/12/19/How_to_make_a_local_Service_and_bind_to_it_in_Android
-- Kostya
10.01.2011 5:24, Jackie G. пишет:
Thanks so much for taking so much time to try and help me out. Here is
how I create the Notification
private Notification notification;
private static final int NOTIFICATION_ID=1;
protected Context context;
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return new AndroidServiceImpl();
}
@Override
public void onCreate(){
super.onCreate();
NotificationManager currentManager = (NotificationManager)
getSystemService(Context.NOTIFICATION_SERVICE);
I think the real problem is with the context in the Impl. Can I even
get an application context from the impl? Should this be passed to the
service from the application? Can it be grabed from AndroidService?
public class AndroidServiceImpl extends IAndroidService.Stub{
public String getAndroidText(String conversation)
throws RemoteException {
// TODO Auto-generated method stub
NotificationManager currentManager =
(NotificationManager)
getSystemService(Context.NOTIFICATION_SERVICE);
Context context = getApplicationContext();
This is for an open source class I am teaching so I can create a
Google project tomorrow if you still want to help. That way you can
see the whole code.
On Jan 9, 2:39 pm, Kostya Vasilyev<kmans...@gmail.com> wrote:
How are you creating "notification" ?
09.01.2011 22:33, Jackie G. пишет:
Also double checked and it is hitting the breakpoint.
On Jan 9, 11:35 am, Kostya Vasilyev<kmans...@gmail.com> wrote:
I don't see code in getAndroidText that would initialize "notification".
It should be something like:
notification = new Notification(R.drawable.status_icon, "Hello",
System.currentTimeMillis());
And does getAndroidText really get called? You can verify by setting a
breakpoint.
-- Kostya
09.01.2011 19:03, Jackie G. пишет:
Kostya,
Thanks for the advice I did as you have said and everything compiles.
There is still a problem, however, the notification manager does not
show the updates I am expecting.
Here is my Service Impl
public class AndroidServiceImpl extends IAndroidService.Stub{
public String getAndroidText(String conversation)
throws RemoteException {
// TODO Auto-generated method stub
NotificationManager currentManager = (NotificationManager)
getSystemService(Context.NOTIFICATION_SERVICE);
Context context = getApplicationContext();
CharSequence contentTitle = "Sogeti";
CharSequence contentText = "This is a message";
Intent notificationIntent = new
Intent(AndroidService.this, AndroidServiceImpl.class);
PendingIntent contentIntent =
PendingIntent.getActivity(AndroidService.this, 0, notificationIntent,
0);
notification.setLatestEventInfo(context, contentTitle,
contentText, contentIntent);
currentManager.notify(NOTIFICATION_ID, notification);
return "Android Services are Fun!";
}
}
And the parts of the activity that call the service...
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
bindService(new
Intent("com.sogeti.walkthrough.service.ANDROID_SERVICE"), serConn,
Context.BIND_AUTO_CREATE);
serviceBtn = (Button)findViewById(R.id.serviceBtn);
serviceBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
callService();
}
});
}
private void callService(){
try{
String text = androidService.getAndroidText("Test");
String other = "test";
}
catch(NullPointerException npe){
//TODO: Log Null pointer
}
catch(RemoteException rme){
//TODO: log errors
}
}
On Jan 8, 3:05 pm, Kostya Vasilyev<kmans...@gmail.com> wrote:
Intent(Context context, Class cls)
needs a Context as first parameter, which
AndroidService.AndroidServiceImpl is not :)
I see you have a variable called "context", you can probably use that,
or use standard Java notation "AndroidService.this" to refer to the
enclosing class instance, which as far as I can see, is a Service, which
is a Context.
-- Kostya
08.01.2011 22:55, Jackie G. пишет:
Hi everyone,
I am looking for someone to help me with a simple RPC service. What I
want to do is create a notification message once the service is
started and every time the RPC interface is called I want to update
the notification. Creating the notification works but when I add the
following...
P.S. new to GGs so sorry if there is some secret<code> tag
public String getAndroidText(String conversation) throws
RemoteException {
NotificationManager currentManager = (NotificationManager)
getSystemService(Context.NOTIFICATION_SERVICE);
Context context = getApplicationContext();
CharSequence contentTitle = "Sogeti";
CharSequence contentText = "This is a message";
Intent notificationIntent = new Intent(this,
AndroidServiceImpl.class);
PendingIntent contentIntent =
PendingIntent.getActivity(this, 0,
notificationIntent, 0);
notification.setLatestEventInfo(context, contentTitle,
contentText,
contentIntent);
currentManager.notify(NOTIFICATION_ID, notification);
return "Android Services are Fun!";
}
to my inner impl class, however, I get the following compile error...
The constructor Intent(AndroidService.AndroidServiceImpl,
Class<AndroidService.AndroidServiceImpl>) is undefined
Can someone help me do this the right way?
Thanks!
--
Kostya Vasilyev -- WiFi Manager + pretty widget --http://kmansoft.wordpress.com
--
Kostya Vasilyev -- WiFi Manager + pretty widget --http://kmansoft.wordpress.com
--
Kostya Vasilyev -- WiFi Manager + pretty widget --http://kmansoft.wordpress.com
--
Kostya Vasilyev -- WiFi Manager + pretty widget -- http://kmansoft.wordpress.com
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en