0

I want to start an activity when the service is ran for the first time displaying a layout.

I have the following xml file :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.display.helper"
      android:versionCode="1"
      android:versionName="0.1.124">
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.WRITE_SETTINGS"></uses-permission>
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"></uses-permission>
    <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.TELEPHONY"/>
    <uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />
    <application android:icon="@drawable/icon" android:label="@string/app_name">
      <activity android:name=".GpsTrackActivity" android:label="@string/app_name">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />

      </intent-filter>
    </activity> 
       <service android:name=".dhaService" >
       <intent-filter>
       <action
       android:name = "com.display.helper.dhaService">
       </action>
       </intent-filter>
       </service>
       <receiver android:name=".dha">
       <intent-filter>
       <action
       android:name ="android.intent.action.BOOT_COMPLETED">
...

And i do this in the StartService method:

public class dhaService extends Service 
 {
    @Override
    public ComponentName startService(Intent service) {
        // TODO Auto-generated method stub
        Notification note = new Notification(R.drawable.icon,"sadasd",System.currentTimeMillis());
        note.setLatestEventInfo(this, "Tracking device", "Tracking", null);
        note.flags |= Notification.FLAG_NO_CLEAR;
        this.startForeground(1212,note);
        Intent dialogIntent = new Intent(getBaseContext(),GpsTrackActivity.class);
        dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        getApplication().startActivity(dialogIntent);
        return super.startService(service);

    }

The layout is never displayed what am i doing wrong ?

opc0de
  • 11,557
  • 14
  • 94
  • 187

1 Answers1

1

The documentation says: "A dialog is always created and displayed as a part of an Activity." I'm thinking you need to activate an Activity (possibly one with no regular screen) and override the onCreateDialog(int) callback.

Sparky
  • 8,437
  • 1
  • 29
  • 41
  • See also this topic: http://stackoverflow.com/questions/7918571/how-to-display-a-dialog-from-a-service – Sparky Mar 26 '12 at 08:04