fixex problem with multiple versions of MainActvity being started by StartUpActivity

This commit is contained in:
Graham Jones
2016-03-30 20:56:39 +01:00
parent 8944cbc6d3
commit dc311ae079
3 changed files with 23 additions and 13 deletions

View File

@@ -34,7 +34,9 @@
<activity <activity
android:name=".MainActivity" android:name=".MainActivity"
android:icon="@drawable/star_of_life_48x48" android:icon="@drawable/star_of_life_48x48"
android:label="@string/app_name" > android:label="@string/app_name"
android:exported="true"
>
</activity> </activity>
<activity <activity
android:name=".PrefActivity" android:name=".PrefActivity"

View File

@@ -311,7 +311,9 @@ public class SdServer extends Service implements SdDataReceiver {
} }
Intent i = new Intent(getApplicationContext(), MainActivity.class); Intent i = new Intent(getApplicationContext(), MainActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, i, PendingIntent.FLAG_UPDATE_CURRENT); PendingIntent contentIntent =
PendingIntent.getActivity(this,
0, i, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this); NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
Notification notification = builder.setContentIntent(contentIntent) Notification notification = builder.setContentIntent(contentIntent)
.setSmallIcon(iconId) .setSmallIcon(iconId)

View File

@@ -60,6 +60,7 @@ public class StartupActivity extends Activity {
private OsdUtil mUtil; private OsdUtil mUtil;
private Timer mUiTimer; private Timer mUiTimer;
private SdServiceConnection mConnection; private SdServiceConnection mConnection;
private boolean mStartedMainActivity = false;
final Handler mServerStatusHandler = new Handler(); // used to update ui from mUiTimer final Handler mServerStatusHandler = new Handler(); // used to update ui from mUiTimer
@@ -282,6 +283,7 @@ public class StartupActivity extends Activity {
// If all the parameters are ok, close this activity and open the main // If all the parameters are ok, close this activity and open the main
// user interface activity instead. // user interface activity instead.
if (allOk) { if (allOk) {
if (!mStartedMainActivity) {
Log.v(TAG, "starting main activity..."); Log.v(TAG, "starting main activity...");
try { try {
Intent intent = new Intent( Intent intent = new Intent(
@@ -289,11 +291,15 @@ public class StartupActivity extends Activity {
MainActivity.class); MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent); startActivity(intent);
mStartedMainActivity = true;
finish(); finish();
} catch (Exception ex) { } catch (Exception ex) {
Log.v(TAG, "exception starting settings activity " + ex.toString()); mStartedMainActivity = false;
Log.v(TAG, "exception starting main activity " + ex.toString());
}
} else {
Log.v(TAG,"allOk, but already started MainActivity so not doing anything");
} }
} }
} }
}; };