0

Я разработал приложение для уведомлений, где при нажатии на нитификацию нужно открыть одну активность. но когда я нажимаю значок уведомления в верхнем углу моего эмулятора, ничего не происходит. он должен открыть активность NotificationView. в данном LogCat я нашел предупреждение W/InputMethodManagerService(1214): Window already focused, ignoring focus gain of: [email protected] attribute=null, token = [email protected] файлов как ниже ... MainActivity.javaОкно уже сфокусировано, игнорируя усиление фокуса: com.android.internal.view в приложении для уведомления

package com.example.notification1; 

import android.app.Notification; 
import android.app.NotificationManager; 
import android.app.PendingIntent; 
import android.content.Context; 
import android.content.Intent; 
import android.support.v4.app.NotificationCompat; 
import android.support.v7.app.ActionBarActivity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.Button; 


public class MainActivity extends ActionBarActivity { 
    Button b1; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     b1=(Button)findViewById(R.id.button); 
     b1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Notify("You've received new message","ghfghfghfghf hfghfdgh f fgj f gjdf fghfg"); 
     } 
     }); 
    } 
    private void Notify(String notificationTitle, String notificationMessage){ 
     NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
     @SuppressWarnings("deprecation") 

     Notification notification = new Notification(R.drawable.ic_launcher,"New Message", System.currentTimeMillis()); 
     Intent notificationIntent = new Intent(this,NotificationView.class); 
     PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,notificationIntent, 0); 

     notification.setLatestEventInfo(MainActivity.this, notificationTitle,notificationMessage, pendingIntent); 
     int notificationId = (int) (System.currentTimeMillis()/1000); 
     notificationManager.notify(notificationId, notification); 


    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 

     int id = item.getItemId(); 

     //noinspection SimplifiableIfStatement 
     if (id == R.id.action_settings) { 
     return true; 
     } 
     return super.onOptionsItemSelected(item); 
    } 
} 

NotificationView.java

package com.example.notification1; 

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

public class NotificationView extends Activity{ 
    @Override 
    public void onCreate(Bundle savedInstanceState){ 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.notification); 
    } 
} 

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.notification1" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="18" /> 

    <application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name=".NotificationView" 
     android:label="@string/app_name" /> 
</application> 
</manifest> 

activity_main. xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="MainActivity"> 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Notification Example" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:textSize="30dp" /> 

    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="hello world " 
     android:textColor="#ff87ff09" 
     android:textSize="30dp" 
     android:layout_below="@+id/textView1" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="48dp" /> 

    <ImageButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/imageButton" 
     android:src="@drawable/ic_launcher" 
     android:layout_below="@+id/textView2" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="42dp" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Notification" 
     android:id="@+id/button" 
     android:layout_marginTop="62dp" 
     android:layout_below="@+id/imageButton" 
     android:layout_centerHorizontal="true" /> 

</RelativeLayout> 

notification.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" > 

    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="400dp" 
     android:text="Hi, Your Detailed notification view goes here...." /> 
</LinearLayout> 

ответ

3

Попробуйте добавить FLAG_ACTIVITY_REORDER_TO_FRONT или комбинацию FLAG_ACTIVITY_CLEAR_TOP и FLAG_ACTIVITY_SINGLE_TOP, намерению

Кроме того, добавить задачу Стах строитель

Intent resultIntent = new Intent(this, ResultActivity.class); 
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); 
stackBuilder.addParentStack(ResultActivity.class); 

// Adds the Intent that starts the Activity to the top of the stack 
stackBuilder.addNextIntent(resultIntent); 
PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0,PendingIntent.FLAG_UPDATE_CURRENT); 
mBuilder.setContentIntent(resultPendingIntent); 

надежда, это будет помогите вам

+0

где я должен размещать код? – user2776638

+1

о намерении..и как намерение.setFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP); –

+0

ok Я попробовал это, но все равно ничего не произошло. – user2776638

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