2012-02-08 4 views
0

Это намерение в нижней части страницы просто говорит, что оно не может запустить событие. Я попытался использовать это намерение для начала любой другой деятельности, и она просто не работает, тогда как намерение начать что-либо в моей основной деятельности работает просто отлично ... в любом случае любая обратная связь приветствуется.Почему мое намерение отключает приложение?

package com.chich; 

import android.app.Activity; 

import android.content.BroadcastReceiver; 
import android.content.ComponentName; 
import android.content.Context; 
import android.content.Intent; 
import android.content.IntentFilter; 
import android.content.pm.PackageManager; 
import android.os.Bundle; 
import android.view.Gravity; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.ImageView; 
import android.widget.Toast; 

public class second_activity extends Activity 
{ 
@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main2); 
    getWindow().setWindowAnimations(0); 


    Toast toast=Toast.makeText(this, "Your incoming texts and calls are now being blocked.", 2000); 
    toast.setGravity(Gravity.TOP, -30, 50); 
    toast.show(); 


    ImageView Image2 = (ImageView) findViewById(R.id.Image2); 
    Image2.setOnClickListener(new OnClickListener() 
    { 
     @Override 
     public void onClick(View Image2) 
     {  

      Intent intent = new Intent(second_activity.this, third_activity.class);    
      startActivity(intent); 
     }  

    }); 
} 

} 

файл манифеста:

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

<uses-permission android:name="android.permission.SEND_SMS"> 
</uses-permission> 
<uses-permission android:name="android.permission.RECEIVE_SMS"> 
</uses-permission> 

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 
    <activity 
     android:name=".chich_activity" 
     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=".second_activity" 
       android:label="@string/app_name"> 
       <intent-filter> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
       </activity> 
       <activity android:name=".third_activity" 
       android:label="@string/app_name"> 
       <intent-filter> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
       </activity> 

    <receiver android:name=".SmsReceiver"> 
     <intent-filter android:priority="9999999" > 
      <action android:name = "android.provider.Telephony.SMS_RECEIVED" /> 
     </intent-filter> 
    </receiver> 
</application> 
</manifest> 

Я не уверен, что это значит, но вот мой LogCat информация: 02-08 03: 11: 00,062: D/UnlockClock (2500): GMT_update mRightNow. getTimeZone(). getID() == America/Los_Angeles 02-08 03: 11: 00.077: D/UnlockClock (2500): GMT_update current == Америка/Los_Angeles, TimeZone.getTimeZone (текущий) .getID() == Америка/Los_Angeles 02-08 03: 11: 05.319: D/dalvikvm (17812): GC_EXPLICIT освободил 6871 объект/411088 байт за 151 мс 02-08 03: 11: 07.058: I/3gw.Service (3071): подключена мобильная сеть - не роуминг 02-08 03: 11: 07.527: D/dalvikvm (2500): GC_FOR_MALLOC освободил 39720 объектов/20 83360 байт за 94 мс 02-08 03: 11: 14.194: D/dalvikvm (16583): GC_EXPLICIT освободил 413 объектов/21640 байт за 138 мс 02-08 03: 11: 19.179: D/dalvikvm (18220): GC_EXPLICIT освободил 168 объектов/9000 байт в 124 мс 02-08 03: 11: 27.089: D/dalvikvm (17515): GC_EXPLICIT освободил 3 объекта/72 байта в 221 мс 02-08 03: 11: 32.269: D/dalvikvm (2664): GC_EXPLICIT освободил 579 объектов/35824 байт 239ms 02-08 03: 11: 39,866: D/dalvikvm (16088): GC_EXPLICIT освободила 854 объектов/26864 байт 186ms

ответ

0

Я понял, и решение на самом деле не было в коде, указанном на этой странице.

ComponentName locationReceiver = new ComponentName(second_activity.this, SmsReceiver.class); 
      PackageManager pm = getPackageManager(); 
      pm.setComponentEnabledSetting(locationReceiver,  PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); 

Менеджер пакетов установлен по умолчанию, чтобы убить приложение после его запуска. Вы должны командовать им не с «PackageManager.DONT_KILL_APP» в конце. Однако было отвратительно, что это только иногда убивало приложение, что затрудняло на самом деле выяснить, что было не так. Спасибо всем за ваш вклад, я очень благодарен.

0

обновить свой код, как этот Вам не нужно писать фильтр намерений для каждого Мероприятия. просто редактировать AndroidManifest.xml как ниже `

Image2.setOnClickListener(new OnClickListener() 
{ 
    @Override 
    public void onClick(View v) 
    {  

     Intent intent = new Intent(second_activity.this,third_activity.class);    
     startActivity(intent); 
    }  

}); 

AndroidManifest.xml

<application 
android:icon="@drawable/ic_launcher" 
android:label="@string/app_name" > 
<activity 
    android:name=".chich_activity" 
    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=".second_activity" ></activity> 
<activity android:name=".third_activity"></activity> 

</application>` 
+0

Я просто прокомментировал функцию включения и выключения приемника в функции third_activity, и это намерение работало нормально. А как насчет этого? – Christian

0

Насколько я знаю, только ваш основной вид деятельности следует определить намерения фильтров, как это. Для 2-го и 3-го действий вам нужно определить имя android: name.

+0

Что ты имеешь в виду? что мы не можем использовать намерения в других действиях? – OnkarDhane

+0

Право я фактически изменил это так, как он в отчаянном надежде, что он решит проблему, но это не так ... – Christian

+0

Хм, вы правы, какая ошибка вы на самом деле получаете? Любые трассировки стека в LogCat? – simon

0

Повторно добавьте свои действия с помощью редактора xml в eclipse. Я думаю, что вы копируете &, вставляя свои действия из основного вида деятельности. простые действия (я предполагаю, что second_activity и third_activity - простые действия) обычно не запускаются. и имена без точки. Я думаю, вы уже изменили это.

кстати: вы используете затмение? ctrl + shift + f - ваш друг. он применяет стандартный формат к вашему тексту (код), что облегчает чтение людьми, которые привыкли к стандартному «просмотру» Java.

+0

Я пробовал это, и они ... но спасибо за инструмент ctrl + shift + f. Я даже не знал, что это было. – Christian

+0

можете ли вы отлаживать свой код, чтобы проверить, когда-либо вызывается Image2.setOnClickListener - onClick? Похоже, ваш манифест в порядке, так как вы не получаете никаких исключений ... – eks

+0

Я бы сделал это, но я уже проверил, поставив метод, который позволяет моему прослушивающему вещателю (который прерывает трансляции) в onClick, и он работал , к сожалению, он все же закрыл приложение. – Christian

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