Reputation: 3285
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.
Upvotes: 2
Views: 4176
Reputation: 1606
Just added
android.permission.SYSTEM_ALERT_WINDOW
permission in manifest and now i can able to show alert from service.
Upvotes: 0
Reputation: 33996
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();
}
}
Upvotes: 10