2012-03-26 2 views
0

Ich möchte eine Aktivität starten, wenn der Service zum ersten Mal ausgeführt wird, ein Layout anzuzeigen.Display-Layout von Service

Ich habe die folgende XML-Datei:

<?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"> 
... 

Und ich tue dies in der Methode Start:

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); 

    } 

Das Layout wird nie angezeigt, was ich falsch mache?

Antwort

1

Die documentation sagt: "Ein Dialog wird immer erstellt und als Teil einer Aktivität angezeigt." Ich denke, Sie müssen eine Aktivität aktivieren (möglicherweise eine ohne regulären Bildschirm) und überschreiben Sie den onCreateDialog(int) Rückruf.

+0

Siehe auch dieses Thema: http://stackoverflow.com/questions/7918571/how-to-display-a-dialog-from-a-service – Sparky