页面底部的这个意图只是说它无法启动事件。我试图使用这个意图来启动所有其他活动,它只是不起作用,而在我的主要活动中启动任何事情的意图工作得很好......无论如何,任何反馈都是值得赞赏的。
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 == America / Los_Angeles,TimeZone.getTimeZone(当前).getID()== America / Los_Angeles 02-08 03:11:05.319:D / dalvikvm( 17812):GC_EXPLICIT在151ms中释放了6871个对象/ 411088字节02-08 03:11:07.058:I / 3gw.Service(3071):已连接移动网络 - 未漫游02-08 03:11:07.527:D / dalvikvm(2500 ):GC_FOR_MALLOC在94ms中释放了39720个对象/ 2083360字节02-08 03:11:14.194:D / dalvikvm(16583):GC_EXPLICIT在138ms中释放了413个对象/ 21640个字节02-08 03:11:19.179:D / dalvikvm(18220) ):GC_EXPLICIT在124ms中释放168个对象/ 9000个字节02-08 03:11:27.089:D / dalvikvm(17515):GC_EXPLICIT在221ms中释放3个对象/ 72个字节02-08 03:11:32.269:D / dalvikvm(2664) ):GC_EXPLICIT在239ms中释放了579个对象/ 35824个字节02-08 03:11:39.866:D / dalvikvm(16088):GC_EXPLICIT释放了854 186ms内的objects / 26864字节
答案 0 :(得分:0)
像这样更新您的代码 您不需要为每个活动编写intent过滤器。只需编辑你的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>`
答案 1 :(得分:0)
据我所知,只有你的主要活动应该定义像这样的intent-filters。对于第二和第三个活动,您只需要定义android:name。
答案 2 :(得分:0)
在eclipse中使用xml编辑器重新添加您的活动。我认为你是从主要活动中复制和粘贴你的活动内容。简单的活动(我认为second_activity和third_activity是简单的活动)通常没有发射器。这些名字没有圆点。我想你已经改变了。
顺便问一下:你用的是eclipse吗? ctrl + shift + f是你的朋友。它将标准格式应用于您的文本(代码),使人们更容易阅读,他们习惯于标准的“外观”。答案 3 :(得分: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”命令它。但有些棘手的是,它有时只会杀死应用程序,因此很难弄清楚出了什么问题。谢谢大家的意见,我真的很感激。