Serious complain to Android Platform

by howa » Sat, 07 Mar 2009 20:49:46 GMT


Sponsored Links
 We all know that in Android, you cannot manually force to close a
running app.

Yes, maybe Android is so "smart" that it can run the jobs in
background and only kill them if needed. Googler think this is a
valued added feature, not a bug...but....

Hold on. Let me tell you my case.

Yesterday I have browsered the Google finance (http://
finance.google.com) using the build in browser, since browser can be
multi window, so I forgot to close the Google finance window after
browsing another page.

After a few hours, I discovered I forgot to close the Google finance
window, it is too late, why? Since Google finance will auto get
updated stock feed from Google every minute, so it eat a lot of my
GPRS data usage.

Today I called my telco to check my usage, the total bill not is even
more expensive to buy a brand new G1! That suck! I am really angry
about this silly feature you guy at Google designed.

I post this here is to remind anyone might do the same silly thing
like me. I  might consider to switch back to iphone later.

--~--~---------~--~----~------------~-------~--~----~



Serious complain to Android Platform

by Mark Murphy » Sat, 07 Mar 2009 21:20:58 GMT


 


Application issues do not necessarily imply operating system issues.

I do not use Finance. However, one would hope that it has settings to
let you control the frequency of updates, possibly two separate
frequencies depending on whether it is the active (visible) application
or if it is in the background.

If it has those settings, use them, and your problem should go away.

If it does not have those settings, uninstall the application and give
it an appropriate rating on the Market, reflecting your issue.

This scenario is why I advise my students to shut down background
processing as much as possible when the application is itself moved into
the background.

Background processing, in all its forms, is a double-edged sword. A
frequent complaint lodged against iPhone is that it does not allow
background processing. At the same time, Android applications that take
advantage of background processing, like Finance, have to hew to the
Principle of Least Surprise...and excessive bandwidth charges would
qualify as surprise.

-- 
Mark Murphy (a Commons Guy)
 http://commonsware.com 

Android Training on the Ranch! -- Mar 16-20, 2009
 http://www.bignerdranch.com/schedule.shtml 

--~--~---------~--~----~------------~-------~--~----~


Sponsored Links


Serious complain to Android Platform

by Al Sutton » Sat, 07 Mar 2009 21:35:48 GMT


 I think he's talking about the Google finance web page access via the 
Android web browser which updates itself via Javascript or a meta tag 
every minute.

Al.







--~--~---------~--~----~------------~-------~--~----~



Serious complain to Android Platform

by Mark Murphy » Sat, 07 Mar 2009 21:53:08 GMT


 


Ooooooooooooops. My bad.

This scenario is why I advise my students to come up with totally boffo
names for their apps, so we can tell 'em apart... ;-)

I haven't experienced pages continuing to run in the background. In
fact, I've definitely run into places where, clearly, the pages were
*not* running in the background, despite having active Javascript that
should run indefinitely. If Google Finance Web pages behave differently,
I wonder how they're doing that...

-- 
Mark Murphy (a Commons Guy)
 http://commonsware.com 

Android Training on the Ranch! -- Mar 16-20, 2009
 http://www.bignerdranch.com/schedule.shtml 

--~--~---------~--~----~------------~-------~--~----~



Serious complain to Android Platform

by JP » Sat, 07 Mar 2009 23:10:54 GMT


 


Did you set the device to stay awake, i.e. no display timeout?
If you do this, apps will happily continue to run. With a caveat (see
below), data use should end when the display blanks out.
Caveat: wake locks. Apps can use what's called "wake locks" to keep
the CPU and themselves alive even when the display times out. I am
developer and I use such a scenario to trigger an alarm that the user
sets, based on real-time data that is silently pulled from a server
even if the display is off. There is no control over the real-time
feed, and in theory, the alarm that reverts the wake lock may never go
off. In addition, I assume there's no bug preventing a release of the
wake lock, which is always a risk.
So I'd say, over the lifetime of the device, there's no reasonable way
for you to nurse the data use of your device, making sure you use this
data plan in a desired way.
There's a lot of room for a detailed discussion, but let me recommend
you get an "unlimited" plan ASAP. If you get lucky, your carrier might
reduce your current bill to the "unlimited" charge.

P.S.
I develop with users of metered plans in mind, but this is the first
time I hear there's actually people using Android on such a plan. Good
luck.

--~--~---------~--~----~------------~-------~--~----~



Serious complain to Android Platform

by JP » Sat, 07 Mar 2009 23:29:35 GMT


 


howa,
Out of curiosity - how did you end up using an Android handset on a
metered plan? Did you get an unlocked G1 and run a SIM card/plan
that's carried over from another phone/plan? Or is this a roaming
issue, i.e. you are using the network of a carrier other than your
home carrier?
Which carrier, country?
JP
--~--~---------~--~----~------------~-------~--~----~



Serious complain to Android Platform

by Stoyan Damov » Mon, 09 Mar 2009 15:15:18 GMT


 


I consider this particular iPhone's feature one of the best features
on any smartphone - Apple have a very good reason to not allow 2 apps
to run in parallel - 1 app can and will hinder the performance of the
other app, and as is the case with games on Android, it's quite an
unpleasant surprise to bust your ass to get your game drawing @ ~60
fps when virtual nothing else is running, and then have it draw at a
randomly lower rate just because another app/s is/are running as well.

Cheers

--~--~---------~--~----~------------~-------~--~----~



Serious complain to Android Platform

by MrSnowflake » Mon, 09 Mar 2009 15:15:23 GMT


 Howa: Having multiple documents open inside the browser is not the
same as having multiple Applications running. Android closes
applications down when it runs out of memory. But having a second
'tab' open is not part of this. Having multiple tabs open is your
responsibility, not the system's! So the system couldn't prevent it if
you forget you left the page open. You opened a second page yourself
instead of using the same 'tab' to open up a new site. If you would
have done that, then finance gone and wouldn't have been refreshing.






--~--~---------~--~----~------------~-------~--~----~



Serious complain to Android Platform

by Tote » Mon, 09 Mar 2009 18:42:32 GMT


 On the other hand, it severely limits your opportunities on what you
can do on a platform, too.





--~--~---------~--~----~------------~-------~--~----~



Serious complain to Android Platform

by Stoyan Damov » Mon, 09 Mar 2009 18:53:24 GMT


 One can have the best of both worlds provided that the OS maker is
interested in providing this - for example, an app can request a
RUN_ALONE permission (or whatever) and the OS can do the rest - that
is, providing a single tasking experience on a multitasking OS should
not be that hard.







--~--~---------~--~----~------------~-------~--~----~



Serious complain to Android Platform

by Incognito » Mon, 09 Mar 2009 18:55:55 GMT


 Agree, "power users" can hate the iPhone all they want but is not for nothing 
that it is currently king.








Background processing, in all its forms, is a double-edged sword. A
frequent complaint lodged against iPhone is that it does not allow
background processing.

I consider this particular iPhone's feature one of the best features
on any smartphone - Apple have a very good reason to not allow 2 apps
to run in parallel - 1 app can and will hinder the performance of the
other app, and as is the case with games on Android, it's quite an
unpleasant surprise to bust your ass to get your game drawing @ ~60
fps when virtual nothing else is running, and then have it draw at a
randomly lower rate just because another app/s is/are running as well.

Cheers





      


--~--~---------~--~----~------------~-------~--~----~



Serious complain to Android Platform

by Incognito » Mon, 09 Mar 2009 19:03:06 GMT


 What happens if two apps are asking for the same permision?





One can have the best of both worlds provided that the OS maker is
interested in providing this - for example, an app can request a
RUN_ALONE permission (or whatever) and the OS can do the rest - that
is, providing a single tasking experience on a multitasking OS should
not be that hard.




On the other hand, it severely limits your opportunities on what you
can do on a platform, too.






Background processing, in all its forms, is a double-edged sword. A
frequent complaint lodged against iPhone is that it does not allow
background processing.

I consider this particular iPhone's feature one of the best features
on any smartphone - Apple have a very good reason to not allow 2 apps
to run in parallel - 1 app can and will hinder the performance of the
other app, and as is the case with games on Android, it's quite an
unpleasant surprise to bust your ass to get your game drawing @ ~60
fps when virtual nothing else is running, and then have it draw at a
randomly lower rate just because another app/s is/are running as well.

Cheers







      


--~--~---------~--~----~------------~-------~--~----~



Serious complain to Android Platform

by Stoyan Damov » Mon, 09 Mar 2009 19:08:57 GMT


 It is apparent which app is on top (in the foreground) - the last
launched one, isn't it?









--~--~---------~--~----~------------~-------~--~----~



Serious complain to Android Platform

by Incognito » Mon, 09 Mar 2009 19:16:26 GMT


 So the other one never starts? Won't this leave to unexpected behavior? I.e One 
app will block all others and not let them do their job without the user 
noticing. I.e he may not realize that he is no longer getting twitter messages 
because one app is blocking.  





It is apparent which app is on top (in the foreground) - the last
launched one, isn't it?





What happens if two apps are asking for the same permision?





One can have the best of both worlds provided that the OS maker is
interested in providing this - for example, an app can request a
RUN_ALONE permission (or whatever) and the OS can do the rest - that
is, providing a single tasking experience on a multitasking OS should
not be that hard.




On the other hand, it severely limits your opportunities on what you
can do on a platform, too.






Background processing, in all its forms, is a double-edged sword. A
frequent complaint lodged against iPhone is that it does not allow
background processing.

I consider this particular iPhone's feature one of the best features
on any smartphone - Apple have a very good reason to not allow 2 apps
to run in parallel - 1 app can and will hinder the performance of the
other app, and as is the case with games on Android, it's quite an
unpleasant surprise to bust your ass to get your game drawing @ ~60
fps when virtual nothing else is running, and then have it draw at a
randomly lower rate just because another app/s is/are running as well.

Cheers

















      


--~--~---------~--~----~------------~-------~--~----~



Serious complain to Android Platform

by Al Sutton » Mon, 09 Mar 2009 19:20:43 GMT


 That's why it would be a permission the user has to agree to on install.

To me it seems like a good idea for any platform that wants to high 
quality games to allow those games to use all the resources whilst 
they're in-play. After all, it's the norm on games consoles, and with 
the limited hardware in the G1 (as compared with a PS3 :)) it would make 
a lot of sense.

Al.












-- 

* Written an Android App? - List it at  http://andappstore.com/  *

======
Funky Android Limited is registered in England & Wales with the 
company number  6741909. The registered head office is Kemp House, 
152-160 City Road, London,  EC1V 2NX, UK. 

The views expressed in this email are those of the author and not 
necessarily those of Funky Android Limited, it's associates, or it's 
subsidiaries.


--~--~---------~--~----~------------~-------~--~----~



Other Threads

1. Save ListView items for next time

Hi,

My problem sounds pretty easy to solve... not getting any right
direction.

My app starts with a blank listview with a Menu option to Add contacts
to the ListView. Now, I want that my ListView gets saved every time I
quit my App so that the next time I start my App, I see all the
contacts from last time.

I understand that Android lets you store and retrieve data. Just don't
know how to move forward from here.

Any help in the right direction would be appreciated.

Thanks,

Abhishek

-- 

2. How can I call service methods from broadcastReceiver?

Hello

I made two applications. One for an activity receiving user input, the
other for a background service.
In the service package, I create two files
(startSensorBroadReceiver.java, remoteService.java).
StartSensorBroadReceiver will receiver an intent from activity
application and call method inside of the service.
There is no erron in the codes but I can not excute what is want.
I meet a message like this "The application ServiceExample has stopped
unexpectedly. Please try again."

could you let me know. what is wrong? and how I can call service
methods from broadcastReceiver?

/**
* startSensorBroadReceiver.java
*/
//broad cast receiver
public class StartSensorBroadReceiver extends BroadcastReceiver{

  @Override
  public void onReceive(Context context, Intent intent) {

    String whichTaskStartService = intent.getStringExtra
("whichTaskStartService");
    RemoteService s = new RemoteService();

    if(whichTaskStartService==null){
      Toast.makeText(context,R.string.error_unlocksensor_operation,
Toast.LENGTH_SHORT).show();
    }
    else if(whichTaskStartService.equals("StartSensor"))
    {
      //start service
      Toast.makeText(context,"start sensor function call",
Toast.LENGTH_SHORT).show();
      s.startSensor();
    }
    else if(whichTaskStartService.equals
("StopMotionDetectUnlockSensor"))
    {
      //stop service
      Toast.makeText(context,"stop sensor function call",
Toast.LENGTH_SHORT).show();
      RemoteService s = new RemoteService();
      s.stopSensor();
    }
  }
}

/**
* remoteService.java
*/
public class RemoteService extends Service {

  @Override
  public void onStart(Intent intent, int startId) {
    super.onStart(intent, startId);
    Toast.makeText(this,R.string.service_start,
Toast.LENGTH_SHORT).show();
  }

  @Override
  public void onDestroy() {
    super.onDestroy();
    Toast.makeText(this,R.string.service_destory,
Toast.LENGTH_SHORT).show();
  }

  SensorManager sensorManager;

  public void startSensor(){
    String service_name = Context.SENSOR_SERVICE;
    sensorManager = (SensorManager)getSystemService(service_name);
    sensorManager.registerListener(accelSensorListener,
    SensorManager.SENSOR_ACCELEROMETER,SensorManager.SENSOR_DELAY_UI);
  }

  public void stopSensor(){
    sensorManager.unregisterListener(accelSensorListener);
  }

  @SuppressWarnings("deprecation")
  SensorListener accelSensorListener = new SensorListener() {

    @Override
    public void onAccuracyChanged(int arg0, int arg1) {
      // TODO Auto-generated method stub
    }

    SensorDetectClass motion;

    @Override
    public void onSensorChanged(int sensor, float[] values) {
      // TODO Auto-generated method stub
      if(sensor == SensorManager.SENSOR_ACCELEROMETER)
      {

      };
    }
  }
}

-- 

3. Application developed in 1.5 r 3 not working in Motorola Droid

4. Bitmap questions

5. Dual Camera Support for Video Telephone

6. Please Help me find why htt pclient.execute(httppost)锛沘lways throws IOException

7. Please Help me find why httpclient.execute(httppost)锛沘lways throws IOException