android:chat app popup view

后端 未结 2 1522
无人共我
无人共我 2020-12-12 01:16

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 re

相关标签:
2条回答
  • 2020-12-12 01:24

    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();
    
        }
    }
    
    0 讨论(0)
  • 2020-12-12 01:38

    Just added

    android.permission.SYSTEM_ALERT_WINDOW

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

    0 讨论(0)
提交回复
热议问题