When I declare my main activity in this maner:
<activity android:name=".MyActivity"
android:configChanges="orientation|keyboardHidden"
android:windowSoftInputMode="stateHidden"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<action android:name="com.package.name.MyActivity"/>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
then I get an error No Activity found to handle Intent { act=com.package.name.MyActivity flg=0x24000000 }
when I am using this code:
Intent intent = new Intent("com.package.name.MyActivity");
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
context.startActivity(intent);
If do not use Intent i = new Intent(this, MyActivity.class);
how can I do this with the help of action
for <intent-filter>
Didn't help:
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<action android:name="com.package.name.VIEW"/>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
code:
Intent intent = new Intent("com.package.name.VIEW");
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
context.startActivity(intent);
Try to specify two intent filters:
<activity android:name=".MyActivity"
android:configChanges="orientation|keyboardHidden"
android:windowSoftInputMode="stateHidden"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="com.package.name.MyAction"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
Then you can start the activity using the action name:
Intent intent = new Intent("com.package.name.MyAction");
context.startActivity(intent);
or the class name:
Intent intent = new Intent(context, MyActivity.class);
context.startActivity(intent);
the name
attribute in the action
tag is the name of the action, not the name of your activity. remove the line,
<action android:name="com.package.name.MyActivity"/>
since the intent filter tag is under your activity's tag, the system already understands that it's applied to that activity.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With