Why does ActionBar Compat not display my app's title? - android

My app is built with the support ActionBar to allow for a standard UI between Android 4.x and Android 2.3, and for the most part this works fine. However, the title is not displayed in the ActionBar when I first launch the app under Android 2.3.
If I rotate the device to landscape mode, then the title appears in the ActionBar. After rotating the device back to portrait mode, the title is still visible.
What could be causing this? When I launch a different Activity in the app, that Activity's label (as specified in AndroidManifest.xml) is correctly displayed in the ActionBar.
EDIT: I've tracked this down to a splash screen Activity that is launched from the main activity's onCreate method. I can probably work around this be rearchitecting the app to launch with the splash screen as its default launch activity and then launch the main activity, but are there any other workarounds?
Unfortunately, I don't think "remove the splash screen" will be acceptable.

As far as I can tell, this issue is a bug in Android 2.3. It seems like this problem was caused by my launch Activity starting another Activity (the splash screen) from its onCreate method. Moving the splash screen launch to onStart or onResume did not help to resolve this issue.
I was able to work around the issue by replacing the internals of my launch Activity with the splash screen and creating a new "real main Activity" that the splash screen Activity launches.
It was important to keep the same class as the launch Activity because the app has already been released, and changing the class of the launch Activity would break shortcuts for users who have already installed the app.

Related

How to set Android cover when app go into application list?

How can I deliver change my app cover when it go into application list? (use gestures navigation or button) I tried to launch a new Activity for the image but seems not work when Android 10 above won't allow launch activity in background. Any help? Thanks and please.
Like the image below.
open app (Activity onResume)
go into background but at the application list (Activity onPause)

SplashScreen Animation lag between activities

I want to make a SplashScreen before the main activity starts. I've been carefully replicating this tutorial but there are still problems.
In my code I have an animation in SplashActivity. But my MainActivity has so many elements to initialize that the animation in SplashScreen Activity is lagging a lot.
Is there any possible way to manage this? I tried to use runOnUIThread in the onCreate method of MainActivity, but that made the problem even worse.
actually with 4.4 OS Google is asking to do away with splash screens.
You are better off putting some dummy screen -> splash screen -> main activity. Here dummy screen with no have anything in it.
Provided you want splash screen with no action bar. If you add empty action bar to splash screen you can keep as it is
splash screen -> main activity.
Time lag is due to android takes time to start activity with no action bar at the start of the application.

Dialog rendered behind Home Activity

I am working on a complex Android app and found a strange problem.
The problem occurs when I start an activity to show a dialog.
What have I tried
I tried to search for similar problems ("Android activity blocked by home activity" etc) but could not find any.
Due to the complex nature of my app, I still cannot find the minimum representation of the cause -- The Description section below cannot be used to reproduce the problem. It is just something that I think is closely related to the problem. The real cause could be interactions between different subsystems.
Description
The activity is launched by a service with intent flags = FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TOP, which ensures that it will be the topmost activity at the point when it's launched. In its onCreate method, the activity set its window flags to be FLAG_SHOW_WHEN_LOCKED | FLAG_FULLSCREEN | FLAG_TURN_SCREEN_ON | FLAG_DISMISS_KEYGUARD, which ensures that even if the screen is locked, the activity will still be displayed. The dialog is also built and shown in the activity's onCreate method.
The app is tested on Android phones with screen pattern locks using the following steps:
Start the app. Press home button to return to the home activity. Remove the app from the recent app list.
Turn off and lock the screen by pressing the power button.
Ask (through GCM, to be specific) the service to launch the activity once. Dialog is then successfully shown.
Don't click any button on the dialog. Lock the screen again.
Ask the service to launch the activity once more. This time the dialog is also shown but instantly disappears, leaving the screen pattern lock shown.
Unlock the pattern lock and something strange appears: The dialog is now shown behind the home activity. The dialog doesn't respond to touch event. It's just like a wallpaper.
Android Version seems to matter
The problem seems to be only affecting some of the versions. It occurred on a Galaxy Nexus (Android 4.4.2) but didn't occur on a Galaxy Tab 3 (Android 4.1).
Accidentally the problem was solved by removing the line
android:theme="#android:style/Theme.Dialog"
for the activity containing the dialog from AndroidManifest.xml.
I am not sure why it could be solved in this way though.

Changing Activity screen when the app is not running

How can i change the screen of an activity when pressing any button on an android phone that takes one away from the running app.
I'm trying to get a blank screen to show up on the "recents" screen, instead of a snapshot of the app.
You can use this option and check if it helps you meet your need.
android:excludeFromRecents="true"
Add this to your activities in the application manifest if you do not want the app to be shown in the recent apps list. One drawback is that you would not be able to resume the app from the Recents list. Not sure if this is what you need.
The other way is to have a 'Blank Activity', which you start when your actual activity pauses. You can then finish the 'Blank Activity' on its Resume. This way, you will have your app shown on the Recents list, but with a blank screen.
You can call finish() for activity but that will kill activity. I think that will leave blank screen. Or destroy(). Try both respond with results.
you might want to change the onpause() or onclose() functions of your app. they are the last thing android execute before leaving,therefor you can change the aspect off your app just before you leave it
EDIT :
Maybe if you create PopupWindow and set it to full screen, and color black when exiting no preview would be shown, but app would still be running (idea of user DjDexter5GH) in the onpause() and onclose() functions. therefgor,when you leave,a black(or whatever you want) screen is pushed in front
you can then close it in the onrestart(is it called this?)

On ICS devices Current Activity disappearing when screen gets locked

In activity manifest file i have marked it as android:noHistory="true" because I did not want the screen to be added to the activity stack.
when I lock the screen and unlock it. The activity disappears and the previous screen appears. This should not happen. Please any one can suggest me, how can i handle this on ICS devices. However its working fine on Gingerbread devices.
Remove android:noHistory="true" in android manifest file and call the finish when you move out of that Activity. This will remove the activity completely from the stack and it will not be displayed in your backstack. I hope this will work for you

Categories

Resources