I have developed and android application which is called after phone boot is completed. Now, for testing it I am using my android phone and every time I have to switch on and off my phone to test it.
Is there any command on for android emulator which switch offs and switch on it. I want to test it on android emulator. Let me know how can I do it.
I wrote such a boot service. Just close the emulator window, and reopen it to test the boot service.
But it's tricky: When you start the emulator window again, be carefull not to use the run button. If you use the run button, the application will be installed again, and the boot service is not active right after installation.
So you need to install the application, close the emulator, and then to open the emulator using the green button in the toolbar. If you can't find this button, just start any other Android project.
Your boot service will now be executed.
Related
Ok, I made an app for Android. And when we push the middle button or back(lefthandside) button of Android phone, we all know that Android apps still runs in the background.
So my code is this:
the first line(addEventListener) is in a private function which runs as soon as you open the app.
NativeApplication.nativeApplication.addEventListener(flash.events.Event.EXITING, onMyAppExit)
private function onMyAppExit(event:flash.events.Event):void{
trace("onMyAppExit is running");
saveProgress();
}
Basically, I want saveProgress() to run when the app ACTUALLY exits from running in the background. I noticed that my app actually exits when I open another app like Candy Crush. I guess the Android OS exits apps automatically when the apps are not being used and when the app you are using takes a lot of RAM. However, my code only works when I run my app in AIR Debug Launcher(Mobile). I know that because I see the trace in the function in my output window when I click on the x button on the right corner of the app window. But when I connect my Android phone to the computer and then ---> AIR3.8 for Android settings ---> Publish, and then I "Begin Remote Debug Session", and I open my app first, then open Candy Crush so that the Android OS automatically exits my app, I don't see the trace. So I finalized that the code didn't work on my phone.
I think you should use the event Event.DEACTIVATE,
when the app go to background you can save all so the os can kick your app off it's still safe :)
With that you have the event Event.ACTIVATE when the app go back on the foreground so you can handle it to revive your level.
I am investigating some issues which happen during my app's startup process, but DDMS won't start the debug mode until the process has started, is there a way I can capture the events earlier?
I know that this is a couple of years late, but for any future searches:
Putting WaitForDebugger into your code is one way.
Unlocking developer options (by tapping on the build number in system information on the android device) in Settings allows us to select an application for debugging and then opt to wait for a debugger whenever the program is launched. This allows us do the equivalent of adding and removing WaitForDebugger without modifying and reinstalling the code each time.
For Android Studio, here is what worked for me:
Add
android.os.Debug.waitForDebugger();
Where you want to start debugging.
Then add a breakpoint just after it in your code
Compile your app and pass it to your device
Restart your device
Once it's up, attach the debugger:
Start debugging
You should implement your own Application class which extends
Application and override the methods onCreate and so.. . This class will be your starting point of your app.
also set it as your application in the manifest.
Android can wait for the debugger to attach to your application before the app gets launched. This is a developer option called Wait for debugger.
Steps
Enable developer options (tap build version 7 times)
Enable USB debugging
Install your application onto your device using debug mode
In developer options: Press Select debug app and select the app
Enable Wait for debugger, as shown in screenshot:
Launch your app:
e.g. If testing app launch from terminated state from a push notification, send that push notification to the device.
e.g. If testing app launch from Google Assistant, use the Google Assistant to trigger this.
The app would not launch yet, instead a dialog would show up:
Attach the debugger, by pressing the Attach Debugger to Android Process button
My situation
For anyone interested/ for my future reference: I wanted to debug my Android application receiving a push notification message when the app was in the terminated state. It was actually a Flutter app running on Android, so this is relevant for both Android and Flutter.
I have revoked the API key revealed in this GIF.
Tip
If Wait for debugger is enabled, sometimes you need to detach or close Android Studio's debugger and re-attach it if you want to handle a subsequent application launch successfully. Otherwise, the app would never launch.
Notice, I send a push notification from a device (left device, iOS), and the push notification causes the app to launch on the (right device, Android). Then I attach the debugger, and the program pauses at the breakpoint I set inside FirebaseMessagingReceiver.
I wrote another version of these steps here.
I am trying to end my app gracefully on an Android emulator without causing a crash or killing the app.
Having read numerous posts on how to terminate or crash an app on Android, here's what I've tried:
Switched the emulator to another app
Clicked the Hang up on call button and Make a call button on the emulator
Added finish(); System.exit(0); to my onPause event in the app
Clicked on the root of my program in the Debug perspective in Eclipse and clicked the red square on the menu icon row to terminate, did same and disconnected as well.
Each time I start up the app after any of the above, the tracking code is considering the above chosen method a crash.
So I'm trying to figure out how to gracefully end my app and restart it without incurring a 'crash'.
Any ideas?
Big thanks
Sorry if there is a simple answer to this, but I am new to Android development.
I have a service that starts on boot-up, and a UI that will attach to the service to configure the service. The problem is that if the Activity is defined in the AndroidManifest.xml it will automatically launch on the AVD startup, which is causing some issues due to the Service auto-starting, and the Activity syncronizing with the service. Does anyone have any examples of an Bootup service and activity?
One thing that my activity does is check to see if the service is running, if so it will bind to it, else it will start a service. (incase the service is killed post-boot)
Thoughts?
Go to the avd / sdk manager and just start the phone from there. it will load without your app appearing
window - Android avd and sdk manager - then select your phone and start
I haven't done boot up services myself but afaik your Activity should not start automatically and you should be safe as long as it's not spawned by your IDE. With Eclipse, if you're using it, you can modify launching from;
Right click on your project in Package Explorer.
Select "Run As" / "Run Configurations..."
After you have launched your application once there should be a launch configuration for your project under Android Application list.
Hope this helps.
Everytime I start the emulator from eclipse, I get the following error in my console.
[2010-09-13 17:04:51 - DeviceMonitor]Sending jdwp tracking request failed!
[2010-09-13 17:18:49 - DeviceMonitor]Sending jdwp tracking request failed!
The application works fine, but I am concerned as to why I see this error. Please help
I believe this is coming from the Usage Stats option. I just installed ADT, did a test run and got this error, as well. I went to Window >> Preferences >> Android >> Usage Stats then checked it on. Tried another test and voila! No error!
Kind of annoying, I can imagine...
This is caused after the emulator is closed while eclipse is still running.
When you first run the emulator after starting eclipse, a connection is established between it and eclipse. This connection is used to send messages back and forth between the two programs, and so eclipse can track the progress of the emulator.
When the emulator is closed, the connection is lost, and any attempt by eclipse to send a message results in the error messages you describe.
As Koby said this message comes if you close the emulator after running an application. First of all between successive application running on emulator you don't need to close the emulator. First before running the application you start the emulator by clicking window-->Android SDK and AVD Manager and click on the emulator you want to launch and click on 'start' button and then click on 'Launch' to launch the emulator. After the emulator launches unlock the emulator and keep that emulator minimized. And if you want to run an application go for 'run as android app' and you can see that on the emulator when maximized. After running that application if you want to make some changes in the application you don't need to close the emulator. you press the home button after running the application and keep the emulator minimized. Make the changes on the code and again go for running the application. Thus you can avoid that error message and save time for launching the emulator. if you got that error message then also the application will work properly but you cannot see the messages like uploading app-->installing .apk-->and the success messages. But these will be happening on the background. One way to overcome this is to restart the eclipse.