Показать макет из сервиса - PullRequest
0 голосов
/ 26 марта 2012

Я хочу начать действие, когда служба запускается впервые с отображением макета.

У меня есть следующий 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 Ответ

1 голос
/ 26 марта 2012

Документация гласит: «Диалог всегда создается и отображается как часть действия».Я думаю, вам нужно активировать действие (возможно, без обычного экрана) и переопределить обратный вызов onCreateDialog(int).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...