2

I am developing the chat application.I want to show the pop up view when some one send message to user like this http://code.google.com/p/android-smspopup/. there is also reference picture https://market.android.com/details?id=com.blntsoft.emailpopup

Any one any idea how it works?it will show in native application or in other app also.please provide me the link for reference.I am using the service for web services calls.so service will invoke the pop up view.

Thank you.

Sameer Z.
  • 3,265
  • 9
  • 48
  • 72
  • here u need to indentify..when ur msg coming..so that u can do using broadcast receiver class..so as u got notification popup your custom dialog. link for Custom dialog :http://www.helloandroid.com/tutorials/how-display-custom-dialog-your-android-application – CoDe Jul 28 '11 at 07:47
  • Take a look at ApiDemos project in the SDK - the DialogActivity sample. – IgorGanapolsky Aug 28 '14 at 21:03

2 Answers2

10

As my knowledge you can not open a dialog from Service. But you have one option to open popup window from service for that

1) Make a Layout of popup window.

2) Create on activity and set layout as content view in this activity

3) In manifest you have to write this

 <activity android:theme="@android:style/Theme.Dialog">

4) From service you have to call this activity when you want to open popup.But keep it mind that from service you have to set flag of intent as

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

now you can able to open your activity as popup window.

EDIT

1) Layout main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<EditText  android:id="@+id/web"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    />
<EditText 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    />
    <EditText 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    />
</LinearLayout>

2) test2.java which will act as Popup

package com.example.AutocompleteTextView;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;

public class Test2 extends Activity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

3) Manifest.xml file

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.AutocompleteTextView" android:versionCode="1"
    android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".CustomAutoComplete" android:label="@string/app_name">
        </activity>

        <activity android:name="test1">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="Test2" android:theme="@android:style/Theme.Dialog">
        </activity>
        <service android:name="MyService"></service>
    </application>
</manifest> 

4) Service MyService.java

package com.example.AutocompleteTextView;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Service;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.IBinder;

public class MyService extends Service{

    @Override
    public void onCreate() {
        super.onCreate();
    }

    @Override
    public void onStart(Intent intent, int startId) {
        super.onStart(intent, startId);
        Intent intent1 = new Intent(this, Test2.class);
        intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent1);


    }
    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        return null;
    }

}

this is the activity from which i am starting a service

package com.example.AutocompleteTextView;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.webkit.WebView;
import android.widget.FrameLayout;

public class test1 extends Activity {


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main); 
        startService(new Intent(getApplicationContext(), MyService.class));
        finish();

    }
}
Dharmendra
  • 33,296
  • 22
  • 86
  • 129
  • check i had add a demo files for your problem – Dharmendra Jul 28 '11 at 06:46
  • The code is perfect and working but is that possible to show dialog without starting a new activity. Actually in my case i am working on a sdk. Our client application will integrate our sdk and i want my client life easier and they dont have to include activity in manifest. – Gem Sep 15 '14 at 07:57
  • @Gem You can send broadcast in your case and your client application will receive the event and will display dialog from their app. Hope this will work. – Dharmendra Sep 15 '14 at 09:54
0

Just added

android.permission.SYSTEM_ALERT_WINDOW

permission in manifest and now i can able to show alert from service.

Gem
  • 1,516
  • 16
  • 21