2012-03-26 101 views
0

我想在第一次運行服務時顯示佈局時開始一個活動。服務的顯示佈局

我有以下XML文件:

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

而且我這樣做的StartService方法:

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

    } 

佈局永遠不會顯示我到底做錯了什麼?

回答

1

documentation說:「一個對話框總是被創建並顯示爲一個活動的一部分。」我認爲你需要激活一個活動(可能沒有常規屏幕)並覆蓋onCreateDialog(int)回調。

+0

另請參閱此主題:http://stackoverflow.com/questions/7918571/how-to-display-a-dialog-from-a-service – Sparky 2012-03-26 08:04:30