2013-07-23 2 views
0

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

Я уже прочитал это question.

Мое обслуживание никогда не называется. Я что-то упускаю?

Моя Основная деятельность:

protected void onCreate(Bundle savedInstanceState) { 
// startActivity(new Intent(this, HUD.class)); 
    Intent Servintent = new Intent("com.sample.screen.HUD"); 
    this.startService(Servintent); 

И мой класс обслуживания:

package com.example.screen; 

import android.app.Service; 
import android.content.Intent; 
import android.graphics.PixelFormat; 
import android.os.IBinder; 
import android.view.Gravity; 
import android.view.WindowManager; 
import android.widget.Toast; 

public class HUD extends Service{ 
    HUDView mView; 
    @Override 
    public IBinder onBind(Intent intent) { 
     // TODO Auto-generated method stub 
     String s; 
     s = "Hari"; 

     return null; 
    } 
    @Override 
    public void onCreate() { 
     super.onCreate(); 
     Toast.makeText(getBaseContext(),"onCreate", Toast.LENGTH_LONG).show(); 
     mView = new HUDView(this); 
     WindowManager.LayoutParams params = new WindowManager.LayoutParams(
       WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY, 
       WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH, 
       PixelFormat.TRANSLUCENT); 
     params.gravity = Gravity.RIGHT | Gravity.TOP; 
     params.setTitle("Load Average"); 
     WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE); 
     wm.addView(mView, params); 
    } 

    @Override 
    public void onDestroy() { 
     super.onDestroy(); 
     Toast.makeText(getBaseContext(),"onDestroy", Toast.LENGTH_LONG).show(); 
     if(mView != null) 
     { 
      ((WindowManager) getSystemService(WINDOW_SERVICE)).removeView(mView); 
      mView = null; 
     } 
    } 
} 

HUDView:

package com.example.screen; 

import android.content.Context; 
import android.graphics.Canvas; 
import android.graphics.Paint; 
import android.view.MotionEvent; 
import android.view.ViewGroup; 
import android.widget.Toast; 

public class HUDView extends ViewGroup{ 
    private Paint mLoadPaint; 
    public HUDView(Context context) { 
     super(context); 
     // TODO Auto-generated constructor stub 
      Toast.makeText(getContext(),"HUDView", Toast.LENGTH_LONG).show(); 
      mLoadPaint = new Paint(); 
      mLoadPaint.setAntiAlias(true); 
      mLoadPaint.setTextSize(10); 
      mLoadPaint.setARGB(255, 255, 0, 0); 
    } 
    @Override 
    protected void onDraw(Canvas canvas) { 
     super.onDraw(canvas); 
     canvas.drawText("Hello World", 5, 15, mLoadPaint); 
    } 
    @Override 
    public boolean onTouchEvent(MotionEvent event) { 
     //return super.onTouchEvent(event); 
     Toast.makeText(getContext(),"onTouchEvent", Toast.LENGTH_LONG).show(); 
     return true; 
    } 
    @Override 
    protected void onLayout(boolean changed, int l, int t, int r, int b) { 
     // TODO Auto-generated method stub 

    } 

} 

Android Manifest:

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <service android:name=".HUD" ></service> 

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

ответ

1

создать намерение, как этот

Intent Servintent = new Intent(Mainactivity.this , HUD.class); 
this.startService(Servintent); 
+0

Супер! Он работает ..... –

+0

Если он работает, то принимайте его как ответ и вверх. –

Смежные вопросы