2011-01-06 6 views
0

내가 만들고 싶은 것은 팝업 스타일 응용 프로그램입니다.다른 앱 상단에있는 Android 팝업 스타일 활동

백그라운드에서 서비스가 있습니다. 대기열에 도착한 일정과 사용자에게 알리기 시작하는 활동을 원합니다. SMSPopup 앱의 기능과 매우 유사합니다.

그래서 나는 뭔가가 대기열에 도착하고 내 활동을 호출하는 코드가 있습니다.

그러나 어떤 이유로 활동은 Android 기기의 기본 바탕 화면에 표시되는 것이 아니라 원래 시작된 활동 위에 항상 표시됩니다. 일례로서

:

는 I은 응용

을 실행할 때에 표시되는 주요 활성을 갖는 I 큐에게 I는 팝업 활성을

를 확인하는 서비스가있다.

주 활동을 시작하면 서비스가 시작되고 이제이를 닫을 수 있습니다.

나는 다음 큐에 뭔가를 그리고 그 위에 팝업와 주요 활동을 시작하는 팝업 활동을 만들어 : 어떻게이를 중지하고 내가 원하는대로 행동해야합니까 S ...

팝업 클래스는 다음과 같습니다




public class SMSPopup extends Activity implements OnClickListener{ 

public static String msg; 


@Override 
public void onCreate(Bundle bundle){ 
    super.onCreate(bundle); 
// Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_LONG).show(); 
    this.setContentView(R.layout.popup); 
    TextView tv = (TextView)findViewById(R.id.txtLbl); 
    Intent intent = getIntent(); 
    if (intent != null){ 
     Bundle bb = intent.getExtras(); 
     if (bb != null){ 
      msg = bb.getString("com.andy.tabletsms.message"); 
     } 
    } 

    if(msg == null){ 
    msg = "LOLOLOL"; 
    } 
    tv.setText(msg); 

    Button b = (Button)findViewById(R.id.closeBtn); 
    b.setOnClickListener(this); 
} 


@Override 
public void onClick(View v) { 
    this.finish(); 
} 
} 




나는 큐 때문에 30 초마다 검사하는 방송 수신기에서 활동 호출


    if(main.msgs.size()>0){ 

     Intent testActivityIntent = new Intent(context.getApplicationContext(), com.andy.tabletsms.work.SMSPopup.class); 
    testActivityIntent.putExtra("com.andy.tabletsms.message", main.msgs.get(0)); 
    testActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    context.startActivity(testActivityIntent); 

     } 

배치는 여기를 : http://pastebin.com/F25u6wdM

+0

'main'(main.msgs.get (0)과 같이)은 무엇이며 어디에 있습니까? – Squonk

+0

문자열을 포함하는 arraylist .... 실제로 문제와 관련이 없음 :) – RenegadeAndy

+0

그래서 "- ... 팝업으로 주요 활동을 시작합니다"라고 말합니다. 주요 활동이 '정말로'시작 되었습니까? 즉, 뒤로 버튼을 누르면 팝업 활동이 사라지고 주요 활동이 뒤에서 표시됩니다. 또는 팝업 활동에 주 활동과 동일한 제목 표시 줄이있는 배경이있는 경우입니까? – Squonk

답변

3

이것은 Android에서 제안한 설계 방법에 위배됩니다. 배경 서비스가 사용자 상호 작용을 받기 위해 자신에 활동을 시작하지http://developer.android.com/guide/topics/ui/notifiers/notifications.html

참조하십시오.

토스트 및/또는 알림 메시지를 표시 할 수 있습니다. 알림에서 새로운 의도를 시작할 수 있습니다.

+0

잘 응용할 수있는 응용 프로그램이 많습니다. 응용 프로그램에 대해 원하는 알림 유형과 내 자신 만의 용도에 대해서도 나와 있습니다. – RenegadeAndy

+0

그리고 내가 "서비스"라고 말할 때 그 서비스는 <서비스 목록에있는 서비스>에 정의 된 것과 같지 않습니다. 큐와 그 크기를 추적하는 내 자신의 정렬입니다. – RenegadeAndy

+0

ok. 알 겠어. 나는 당신에게 실이 있다고 생각합니다. 그리고 액티비티가 최전방에 있지 않을 때에도 스레드가 실행되기를 원합니다. 권리? 이것이 옳다면, 당신이 이것을 할 수 있다면 나는 원했습니다. 컨트롤을 서비스 (실제 서비스 ...로 전송하는 것이 좋습니다.스레드가 아님). 서비스가 창을 팝업해야 할 때 알림 및/또는 축배를 만들 수 있습니다. 또한 .. (정말로 원한다면) 같은 장소에서 활동을 시작할 수 있습니다 (안드로이드 추천에 반대하는 경우에도). – GSree